根據端口號查找進程並全部殺死它們。如何找到基於端口的進程並將其全部殺死?
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
如何完成最後一列?
根據端口號查找進程並全部殺死它們。如何找到基於端口的進程並將其全部殺死?
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
如何完成最後一列?
的問題ps -efl | grep PORT_NUMBER
「回聲」,而不是「殺死」之前測試是PORT_NUMBER
可以以ps
輸出相匹配的其他列,以及(日期,時間,PID,。 ..)。一個潛在的殺死狂歡,如果由root運行!
我會做這個:命令
lsof -i tcp:${PORT_NUMBER}
)的 PORT_NUMBER=1234
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill
擊穿 - 名單是在這個TCP端口
awk 'NR!=1 {print $2}'
)上偵聽所有進程 - 忽略第一行,每行打印第二列xargs kill
) - 將結果作爲參數傳遞給kill
。可能有幾個。... | awk '{ print $4 }' | xargs kill -9
請與運行
請不要`kill -9` http://partmaps.org/era/unix/award.html#uuk9letter – 2011-02-18 16:58:07
@NathanKidd那個鏈接是德語的嗎?_> – Drax 2015-05-27 09:28:15
@NathanKidd鏈接已經死了,但是這裏有一個SO關於它的討論http://stackoverflow.com/questions/690415/in-what-order-should-i-send-signals-to-gracefully-shutdown-processes。 – 2017-01-26 16:24:44
提出使用定影器命令:
fuser -k -TERM -n tcp ${PORT_NUMBER}
殺死所有進程監聽某個特定的端口,例如端口8864
kill -9 $ \`lsof -i:8864 -t\`
將8864替換爲您想要的端口。
kill $(lsof -i:6000 -t)
,或者您需要的權限:
sudo kill $(sudo lsof -i:6000 -t)
1)lsof -w -n -i tcp:8080
2)kill -9 processId
須藤定影-k 8080/TCP
一個容易記住的在大多數或所有unix中運行良好的襯管。
此語法可能比問題的日期更近。
定影器(下圖)更簡單 – Federico 2016-09-28 20:12:02
這太好了。現在有一個可愛的小別名: `killport(){ lsof -i tcp:$ 1 | awk'NR!= 1 {print $ 2}'| xargs kill }` 殺死端口現在只是一個例子,例如:`killport 3984` – 2016-12-09 12:40:53