根据端口号查找进程并将其全部删除。
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
如何完成最后一栏?
答案 0 :(得分:107)
ps -efl | grep PORT_NUMBER
的问题是PORT_NUMBER
也可能与ps
的输出中的其他列匹配(日期,时间,pid,...)。如果由root运行,则可能发生杀戮!
我会这样做:
PORT_NUMBER=1234
lsof -i tcp:${PORT_NUMBER} | awk 'NR!=1 {print $2}' | xargs kill
命令细分
lsof -i tcp:${PORT_NUMBER}
) - 列出正在侦听该tcp端口的所有进程awk 'NR!=1 {print $2}'
) - 忽略第一行,打印每行的第二列xargs kill
) - 将结果作为参数传递给kill
。可能有几个。答案 1 :(得分:23)
1。)lsof -w -n -i tcp:8080
2。)kill -9 processId
答案 2 :(得分:18)
建议使用fuser命令:
fuser -k -TERM -n tcp ${PORT_NUMBER}
答案 3 :(得分:12)
kill $( lsof -i:6000 -t )
或者如果您需要权限:
sudo kill $( sudo lsof -i:6000 -t )
答案 4 :(得分:6)
sudo fuser -k 8080 / tcp
很容易记住。
此语法可能比问题日期更新近了!
答案 5 :(得分:3)
... | awk '{ print $4 }' | xargs kill -9
请在运行前用“echo”而不是“kill”进行测试
答案 6 :(得分:1)
要杀死在特定端口上侦听的所有进程,例如港口8864
kill -9 $ \`lsof -i:8864 -t\`
将8864替换为您想要的端口。