2011-02-18 75 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中运行良好的衬管。

此语法可能比问题的日期更近。