我的服務崩潰使用端口與經典:查找進程的PID在啓動的時候在Windows
java.rmi.server.ExportException: Listen failed on port: 9999
我如何才能找到殺死它的過程嗎?
我的服務崩潰使用端口與經典:查找進程的PID在啓動的時候在Windows
java.rmi.server.ExportException: Listen failed on port: 9999
我如何才能找到殺死它的過程嗎?
只需打開一個命令外殼和類型:(說你的端口123456)
netstat -a -n -o | find "123456"
你會看到你需要的一切
的標題是:
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:37 0.0.0.0:0 LISTENING 1111
here如何獲得唯一的PID,因爲它返回整個詳細信息 – 2014-06-06 01:27:46
如何獲得結果 – Chinya 2015-10-29 11:45:01
以上的唯一PID窗體或'nestat -aon | findstr 123456' – 2016-02-09 14:18:40
查找PID使用Windows上的端口的進程的端口號(例如,端口:「9999」)
netstat -aon | find "9999"
-a
顯示所有連接和偵聽端口。
-o
顯示與每個連接關聯的擁有進程ID。
-n
以數字形式顯示地址和端口號。
輸出:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776
然後,通過PID taskkill /F /PID 15776
/F
殺死過程 - 指定要強行終止該過程(ES)。
注:您可能需要額外的許可(從管理員身份運行)殺死一些特定過程
爲什麼netstat退出,除非你給它n標誌? – 2016-07-01 13:40:30
後,一些與我來到這個動作腳本擺弄。複製並保存它在一個.bat文件:
FOR /F "usebackq tokens=5" %%i IN (`netstat -aon ^| find "3306"`) DO taskkill /F /PID %%i
變化「找到‘3306’」在需要是自由的端口號。然後以管理員身份運行該文件。如果你想這樣做編程,你可以使用一些給你的選項,如PowerShell腳本如下它會殺死這個港口
上運行的所有進程:
$processPID = $($(netstat -aon | findstr "9999")[0] -split '\s+')[-1]
taskkill /f /pid $processPID
然而,請注意,您可以更準確地得到您的PID結果。如果您知道該端口應該位於哪個主機上,則可以將其縮小很多。 netstat -aon | findstr "0.0.0.0:9999"
將只返回一個應用程序,最有可能的是正確的。只有搜索上的端口號可能會導致你回到那個只發生在它9999
過程中,像這樣:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING 15776
UDP [fe80::81ad:9999:d955:c4ca%2]:1900 *:* 12331
最有可能的候選者通常結束了,但是,如果這一進程結束前您運行你可以用PID 12331代替腳本並殺死錯誤的進程。
更復雜的替代解決方案在這裏:http://stackoverflow.com/questions/48198/how-can-you-find-out-which-process-is-listening-on-a-port-on-windows – Thomas 2016-05-09 10:03:07