2011-02-18 40 views

回答

93

的問題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。可能有幾個。
+0

定影器(下圖)更簡單 – Federico 2016-09-28 20:12:02

+2

這太好了。現在有一個可愛的小別名: `killport(){ lsof -i tcp:$ 1 | awk'NR!= 1 {print $ 2}'| xargs kill }` 殺死端口現在只是一個例子,例如:`killport 3984` – 2016-12-09 12:40:53

2
... | awk '{ print $4 }' | xargs kill -9 

請與運行

+4

請不要`kill -9` http://partmaps.org/era/unix/award.html#uuk9letter – 2011-02-18 16:58:07

+0

@NathanKidd那個鏈接是德語的嗎?_> – Drax 2015-05-27 09:28:15

+0

@NathanKidd鏈接已經死了,但是這裏有一個SO關於它的討論http://stackoverflow.com/questions/690415/in-what-order-should-i-send-signals-to-gracefully-shutdown-processes。 – 2017-01-26 16:24:44

13

提出使用定影器命令:

fuser -k -TERM -n tcp ${PORT_NUMBER} 
1

殺死所有進程監聽某個特定的端口,例如端口8864

kill -9 $ \`lsof -i:8864 -t\` 

將8864替換爲您想要的端口。

8
kill $(lsof -i:6000 -t) 

,或者您需要的權限:

sudo kill $(sudo lsof -i:6000 -t) 
18

1)lsof -w -n -i tcp:8080

2)kill -9 processId

0

須藤定影-k 8080/TCP

一個容易記住的在大多數或所有unix中運行良好的襯管。

此語法可能比問題的日期更近。