web-dev-qa-db-ja.com

Windowsでlocalhostのポートを使用しているプロセスを強制終了するにはどうすればいいですか?

既にポートに割り当てられている現在のプロセス/アプリケーションを削除するにはどうすればいいですか?

例えば、localhost:8080です。

268
KavinduWije

ステップ1 

管理者としてコマンドラインを実行します。それから下記のコマンドを実行してください。あなたのポート番号をyourPortNumberに入力してください。

ネットスタットfindstr:yourPortNumber

赤い丸で囲まれた領域はPID(プロセス識別子)を示します

ステップ2

次に、PIDを識別した後にこのコマンドを実行します。 

taskkill/PID typeyourPIDhere/F

P.S最初のコマンドをもう一度実行して、プロセスがまだ使用可能かどうかを確認してください。プロセスが正常に終了すると空行になります。

578
KavinduWije

ステップ1(同じことが KavinduWije によって書かれた受け入れられた 回答 )にあります:

netstat -ano | findstr :yourPortNumber

ステップ2で次のように変更します。

tskill typeyourPIDhere 

これはtaskkillがいくつかのgit bashコマンドで機能していないためです。

76
afsarkhan10182

GitBashを使っている場合

ステップ1:

netstat -ano | findstr :8080

ステップ2:  

taskkill /PID typeyourPIDhere /F 

/Fは強制的にプロセスを終了させます)

62
Ara Yaghsizian

Windows PowerShell バージョン1以降でポート3000のプロセスを停止するには、次のように入力します。

停止処理(、(netstat -ano | findstr:3000).split()| foreach {$ [$ 。length-1]}) - 強制


@morganpdxによって示唆されているように、これはもっとPowerShellっぽい、より良いバージョンです。

プロセス停止-Id(Get-NetTCPConnection-LocalPort 3000).OwningProcess -Force

18
todorm

コマンドラインで使用する場合

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

Bat-fileで使用する場合

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

Windows 10のデフォルトの強力なテキストツールでは:

1.)ポート8080を使用してPID(ProcessId)を見つけます。

netstat -aon | findstr 8080

TCP 0.0.0.0:8080 0.0.0.0:0リスト11980

2)ゾンビプロセスを殺す:

taskkill /F /PID 11980

"11980"はあなたのProcessIdです。

8

私はzookeeper @windowsを実行していましたが、zookeeper-stop.shを使用して2181ポートで実行中のzookeeperを停止できなかったため、taskkillにこのダブルスラッシュ「//」メソッドを試しました。出来た

     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.
6
driven_spider

あなたがすでにポート番号を知っているなら、おそらくプロセスにソフトウェア終了シグナルを送ることで十分でしょう(SIGTERM):

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

Windowsユーザーの場合、 CurrPorts toolを使用すると、使用中のポートを簡単に削除できます enter image description here

3
Zuhair Taha

あなたがpythonを使ってそれをしたい場合:check 例えば8080のように特定のポートで動いているpythonのkillプロセスで可能ですか?Smunk からの回答はうまく機能します。私はここで彼のコードを繰り返します:

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

あなたはバットファイルを実行することによって行うことができます:

@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

Bellowコマンドを使用してIISを再起動するだけでこれを回避できます。

IISRESET

0
ksrider 148