【发布时间】:2011-06-29 22:50:29
【问题描述】:
根据端口号查找进程并将其全部杀死。
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
如何补完最后一栏?
【问题讨论】:
根据端口号查找进程并将其全部杀死。
ps -efl | grep PORT_NUMBER | kill -9 process_found_previously
如何补完最后一栏?
【问题讨论】:
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。可能有几个。【讨论】:
killport() { lsof -i tcp:$1 | awk 'NR!=1 {print $2}' | xargs kill } 通过端口杀掉现在只是一个写作的例子,例如:killport 3984
-it 选项,则可以不使用 awk: -t 指定 lsof 应仅生成带有进程标识符且没有标题的简洁输出 - 例如,以便输出可以被管道杀死(1)。。不用说,这将是一种更好、更可靠的方法。
A=1234; B=4567; lsof -i tcp:${A} -i tcp:${B} -t | xargs kill
1.) lsof -w -n -i tcp:8080
2.) kill -9 processId
【讨论】:
kill -9,试试kill或者用kill -15 SIGTERM 什么,如果不行,最后用kill -9强制。跨度>
kill $( lsof -i:6000 -t )
或者如果您需要权限:
sudo kill $( sudo lsof -i:6000 -t )
【讨论】:
test <check if the port 6000 is being used> && kill $( lsof -i:6000 -t )。任何建议都会有所帮助。
建议使用 fuser 命令:
fuser -k -TERM -n tcp ${PORT_NUMBER}
【讨论】:
fuser -k -TERM ${PORT}/tcp 请参阅下面的@Cryptopat response
sudo fuser -k 8080/tcp
一个容易记住的。
此语法可能比问题的日期更新!
【讨论】:
... | awk '{ print $4 }' | xargs kill -9
请在运行前使用“echo”而不是“kill”进行测试
【讨论】:
kill -9 partmaps.org/era/unix/award.html#uuk9letter
杀死所有侦听特定端口的进程,例如8864端口
kill -9 $ \`lsof -i:8864 -t\`
用你想要的端口替换 8864。
【讨论】: