如何find基于端口的进程,并杀死他们呢?
根据端口号查找进程并全部杀死。
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
如何完成最后一列?
ps -efl | grep PORT_NUMBER
的问题 ps -efl | grep PORT_NUMBER
是PORT_NUMBER
可能匹配ps
的输出中的其他列(date,时间,pid,…)。 一个潜在的杀死狂欢,如果运行的根!
我会这样做:
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
) – 将结果作为parameter passing给kill
。 可能有几个。
1.) lsof -w -n -i tcp:8080
2) kill -9 processId
build议使用fuser命令:
fuser -k -TERM -n tcp ${PORT_NUMBER}
kill $( lsof -i:6000 -t )
或者,如果您需要权限:
sudo kill $( sudo lsof -i:6000 -t )
... | awk '{ print $4 }' | xargs kill -9
运行前请用“echo”而不是“kill”来testing
终止监听特定端口的所有进程,例如端口8864
kill -9 $ \`lsof -i:8864 -t\`
用你想要的端口replace8864。
sudo fuser -k 8080 / tcp
一个容易记住的大多数或所有unix运行良好的衬里。
这个语法可能比问题的date更近。