根据端口号,如何一条命令kill掉对应所有相关进程?
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
经常会发现端口冲突的情况,比如苏南大叔最近在调试的一套开源程序,非要占用8080
端口。而在苏南大叔的测试机上面,8080
分给了apache
,kill
掉apache
之后,狗血的发现还有另外一个nginx
也在抢这个8080
。这完全不按套路出牌啊。
本篇文章中,苏南大叔提供了两个组合好的命令,可以直接干掉所有的相关程序。测试环境:mac
。并不需要先lsof
,然后再kill
掉对应的pid
了。非常好用,推荐大家尝试。推荐前置阅读文章:
命令一(推荐)
命令:
kill -kill $(lsof -t -i :{port})
例如:
kill -kill $(lsof -t -i :8080)
如果有报错信息的话,例如:
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
那么,很有可能对应的端口号是没有任何监听的。可以理解为命令被正确执行。
命令二
命令:
lsof -P | grep ':{port}' | awk '{print $2}' | xargs kill -9
例如:
lsof -P | grep ':8080' | awk '{print $2}' | xargs kill -9
命令二的执行时间略显较长,效率较低。不推荐。
相关文章
总结
这两个组合命令的执行效率上来看,前者方案一是最好的选择,可以做到快速解决问题,推荐大家使用。而方案二,则需要几秒的时间。所以,对比很明显。这两个组合命令的好处就是:直奔目的,就是要kill
掉这个端口号对应的所有程序,根本不关心具体是啥程序。简单好用!更多苏南大叔的mac
使用技巧,请点击:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。