1

目前我执行以下清除端口上运行的所有进程

lsof -i :10000

我得到

COMMAND     PID         USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
Google    10427         user   60u  IPv4 0x162adea8      0t0  TCP localhost:52478->localhost:ndmp   (ESTABLISHED)
Google    10427         user  112u  IPv4 0x16289b98      0t0  TCP localhost:52483->localhost:ndmp (ESTABLISHED)

然后我杀了它

kill 10427

我正在寻找一种方法来简化上述过程。我猜该解决方案与管道输出和杀死它有关。类似的东西(我想,这里我假设 1 美元是 10427)。

lsof -i :10000 | kill $1

我没有做太多的 bash 脚本,所以任何帮助都会很棒。

4

3 回答 3

4

我想你想要类似的东西

fuser -k -n tcp 10000

lsof灵魂会更像

lsof -i :10000|tail -n +2|awk '{print $2}'|xargs -r kill
于 2012-04-08T08:57:45.080 回答
1

我认为迈克尔斯的回答是最好的,但仅供参考,您也可以这样做:

PID=`lsof -i :10000 | awk 'NR == 2 {print $2}'`
kill $PID
于 2012-04-08T08:58:47.503 回答
1

或者用这个!

kill $(lsof -i :www | awk '{print $2}' | grep -v PID)
于 2012-04-08T11:37:55.097 回答