it-swarm-tr.com

Şu anda Windows'ta localhost'taki bir portu kullanarak işlemi nasıl sonlandırabilirim?

Zaten bir limana atanmış mevcut işlem/uygulama nasıl kaldırılır?

Örneğin: localhost:8080

234
KavinduWije

1. Adım

Yönetici olarak komut satırını çalıştırın. Ardından aşağıdaki söz komutunu çalıştırın. port numaranızı yourPortNumber yazın

netstat -ano | findstr: yourPortNumber

Kırmızı renkli daire içine alınmış alan, PID'yi (işlem tanımlayıcısı) gösterir

2. Adım

Ardından PID'yi tanımladıktan sonra bu komutu uygularsınız.

taskkill/PID typeyourPIDhere/F

Not; Sürecin hala kullanılabilir olup olmadığını kontrol etmek için ilk komutu tekrar çalıştırın. İşlem başarıyla tamamlanırsa boş satır alırsınız.

730
KavinduWije

Adım 1 (aynısı kabul edilir cevap tarafından yazılır KavinduWije ):

netstat -ano | findstr :yourPortNumber

Adım 2'deki değişiklikler:

tskill typeyourPIDhere 

Bu taskkill bazı git bash komutunda çalışmadığından beri

76
afsarkhan10182

GitBash kullanıyorsanız

Adım bir:

netstat -ano | findstr :8080

İkinci adım: 

taskkill /PID typeyourPIDhere /F 

(/F zorla işlemi sonlandırır)

62
Ara Yaghsizian

In Windows PowerShell sürüm 1 veya üstü, port 3000 tipinde bir işlemi durdurmak için:

Durdurma İşlemi (, (netstat -ano | findstr: 3000) .split () | foreach {$ [$ .length-1]}) -Force


@Morganpdx tarafından önerildiği gibi burada daha fazla PowerShell-ish, daha iyi bir sürüm var:

Durdurma İşlemi -Id (Get-NetTCPConnection -LocalPort 3000) .OwningProcess -Force

18
todorm

Windows10 varsayılan araçlarıyla:

1.) 8080 bağlantı noktası için PID'yi (İşlem Kimliği) bulun:

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0:010

2.) Zombi işlemini öldür:

taskkill /F /PID 11999

"11999" sizin PID’inizdir

12
DuracellDeMonaco

Komut satırında kullanım için:

for /f "tokens=5" %a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %a

Yarasa dosyasında kullanım için:

for /f "tokens=5" %%a in ('netstat -aon ^| find ":8080" ^| find "LISTENING"') do taskkill /f /pid %%a
10
Mahesh Narwade

Port numarasını zaten biliyorsanız, muhtemelen işleme bir yazılım sonlandırma sinyali göndermek yeterli olacaktır (SIGTERM):

kill $(lsof -t -i :PORT_NUMBER)
3
Telefonplan

Windows kullanıcıları için, kullanımdaki bağlantı noktalarını kolayca öldürmek için CurrPorts aracını kullanabilirsiniz enter image description here

3
Zuhair Taha

Python kullanarak yapmak istiyorsanız: check Belirli bir limanda çalışan python kill işleminde, mesela 8080 mi?Smunk kullanıcısının yanıtı güzel çalışıyor. Burada kodunu tekrarlıyorum:

from psutil import process_iter
from signal import SIGTERM # or SIGKILL

for proc in process_iter():
    for conns in proc.connections(kind='inet'):
        if conns.laddr.port == 8080:
            proc.send_signal(SIGTERM) # or SIGKILL
            continue 
2
Kardi Teknomo

Zookeeper @windows kullanıyordum, zookeeper-stop.sh kullanarak 2181 limanında çalışan zookeeper'ı durduramadım, bu yüzden bu iki satırlı "//" metodunu taskkill için denedim. İşe yaradı 

     1. netstat -ano | findstr :2181
       TCP    0.0.0.0:2181           0.0.0.0:0              LISTENING       8876
       TCP    [::]:2181              [::]:0                 LISTENING       8876

     2.taskkill //PID 8876 //F
       SUCCESS: The process with PID 8876 has been terminated.
1
sandprogrammer

Bir yarasa dosyası çalıştırarak yapabilirsiniz:

@ECHO OFF                                                                              
FOR /F "tokens=5" %%T IN ('netstat -a -n -o ^| findstr "9797" ') DO (
SET /A ProcessId=%%T) &GOTO SkipLine                                                   
:SkipLine                                                                              
echo ProcessId to kill = %ProcessId%
taskkill /f /pid %ProcessId%
PAUSE
1
flopcoder

Bunu, IIS'yi basit bir şekilde yeniden başlatıp feryat komutunu kullanarak önleyebiliriz.

IISRESET

0
ksrider 148