经常会发现端口冲突的情况,比如苏南大叔最近在调试的一套开源程序,非要占用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使用技巧,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

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

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

本站的忠实读者小伙伴,正在阅读下面这些文章: