除了PID之外,OSX通过端口终止进程

时间:2016-09-11 19:35:58

标签: bash macos shell terminal scripting

我想杀死所有侦听端口的进程

kill -kill `lsof -t -i tcp:3000`

现在问题是我想要排除某些PID,-p选项对我不起作用。

kill -kill -p `pidof chrome` `lsof -t -i tcp:1337`

1 个答案:

答案 0 :(得分:1)

您可以在此处使用while循环:

cpid=$(pidof chrome) && lsof -t -i tcp:3000 | while read pid; do \
     [[ $cpid != $pid ]] && kill "$pid"; done

获取chrome的PID是变量cpid,然后迭代lsof -t -i tcp:3000的输出,如果PID与chrome的PID不匹配,则kill - 这个过程。