既にポートに割り当てられている現在のプロセス/アプリケーションを削除するにはどうすればいいですか?
例えば、localhost:8080
です。
ステップ1
管理者としてコマンドラインを実行します。それから下記のコマンドを実行してください。あなたのポート番号をyourPortNumberに入力してください。
ネットスタットfindstr:yourPortNumber
赤い丸で囲まれた領域はPID(プロセス識別子)を示します
ステップ2
次に、PIDを識別した後にこのコマンドを実行します。
taskkill/PID typeyourPIDhere/F
P.S最初のコマンドをもう一度実行して、プロセスがまだ使用可能かどうかを確認してください。プロセスが正常に終了すると空行になります。
ステップ1(同じことが KavinduWije によって書かれた受け入れられた 回答 )にあります:
netstat -ano | findstr :yourPortNumber
ステップ2で次のように変更します。
tskill typeyourPIDhere
これはtaskkill
がいくつかのgit bashコマンドで機能していないためです。
GitBashを使っている場合
ステップ1:
netstat -ano | findstr :8080
ステップ2:
taskkill /PID typeyourPIDhere /F
(/F
は強制的にプロセスを終了させます)
Windows PowerShell バージョン1以降でポート3000のプロセスを停止するには、次のように入力します。
停止処理(、(netstat -ano | findstr:3000).split()| foreach {$ [$ 。length-1]}) - 強制
@morganpdxによって示唆されているように、これはもっとPowerShellっぽい、より良いバージョンです。
プロセス停止-Id(Get-NetTCPConnection-LocalPort 3000).OwningProcess -Force
コマンドラインで使用する場合
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
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です。
私は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.
あなたがすでにポート番号を知っているなら、おそらくプロセスにソフトウェア終了シグナルを送ることで十分でしょう(SIGTERM):
kill $(lsof -t -i :PORT_NUMBER)
Windowsユーザーの場合、 CurrPorts toolを使用すると、使用中のポートを簡単に削除できます
あなたが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
あなたはバットファイルを実行することによって行うことができます:
@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
Bellowコマンドを使用してIISを再起動するだけでこれを回避できます。
IISRESET