我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

经常会发现端口冲突的情况,比如苏南大叔最近在调试的一套开源程序,非要占用8080端口。而在苏南大叔的测试机上面,8080分给了apachekillapache之后,狗血的发现还有另外一个nginx也在抢这个8080。这完全不按套路出牌啊。

苏南大叔:根据端口号,如何一条命令kill掉对应所有相关进程? - kill_by_port
根据端口号,如何一条命令kill掉对应所有相关进程?(图3-1)

本篇文章中,苏南大叔提供了两个组合好的命令,可以直接干掉所有的相关程序。测试环境:mac。并不需要先lsof,然后再kill掉对应的pid了。非常好用,推荐大家尝试。推荐前置阅读文章:

命令一(推荐)

命令:

kill -kill $(lsof -t -i :{port})

例如:

kill -kill $(lsof -t -i :8080)

苏南大叔:根据端口号,如何一条命令kill掉对应所有相关进程? - kill-command
根据端口号,如何一条命令kill掉对应所有相关进程?(图3-2)

如果有报错信息的话,例如:

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掉对应所有相关进程? - lsof-awk-kill
根据端口号,如何一条命令kill掉对应所有相关进程?(图3-3)

相关文章

总结

这两个组合命令的执行效率上来看,前者方案一是最好的选择,可以做到快速解决问题,推荐大家使用。而方案二,则需要几秒的时间。所以,对比很明显。这两个组合命令的好处就是:直奔目的,就是要kill掉这个端口号对应的所有程序,根本不关心具体是啥程序。简单好用!更多苏南大叔的mac使用技巧,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   mac