Linux 查看端口的占用情况并找出并杀死占用进程的方法
1lsof查看端口的占用情况
1.1命令使用示例
#命令为lsof-i [root@onepiece~]#lsof-i #将会显示命令+进程ID+进程所属用户,以及监听的协议、状态等信息 COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME dhclient728root6uIPv4112620t0UDP*:bootpc ntpd839ntp16uIPv4136710t0UDP*:ntp ntpd839ntp18uIPv4136770t0UDPlocalhost:ntp
•注意:若提示无此命令,则需要安装,命令如下:
[root@onepiece~]#lsof-i -bash:lsof:commandnotfound [root@onepiece~]#yuminstall-ylsof ...... Installed: lsof.x86_640:4.87-6.el7 Complete! #出现上述的"Complete!",说明安装成功。
1.2查看某一端口的占用情况
#比如查看80端口的占用情况,命令为:
[root@onepiece~]#lsof-i:22 COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAME sshd3187root3uIPv4162780t0TCP*:ssh(LISTEN) sshd9528root3uIPv444364800t0TCPonepiece:ssh->120.253.xx.xx:30214(ESTABLISHED)
这里显示出22号端口正被sshd所使用,状态是LISTEN(监听).
1.3杀死某个端口的所有进程
不建议通过kill的方式解决端口冲突问题!
某些极少的情况下是可以直接杀死进程、释放端口的,比如某个Tomcat进程没有成功退出,导致重启失败.
#命令如下: [root@onepiece~]#killallsshd #这样,所有sshd的进程都会被结束掉——我这里通过ssh远程操作阿里云服务器,杀死之后将退出连接,提示如下: Connectionto47.52.xx.xxclosedbyremotehost. Connectionto47.52.xx.xxclosed. #此时需要从阿里云控制台通过终端进入,并开启sshd服务,命令如下: servicesshdstart
这样,所有与sshd的相关进程都会被结束掉——务必慎用.
2netstat查看端口占用情况
2.1命令使用示例
#命令示例如下: [root@onepiece~]#netstat-anp|grep22 tcp000.0.0.0:220.0.0.0:*LISTEN9646/sshd tcp036172.31.xx.xx:22120.253.xx.xx:30307ESTABLISHED9649/sshd:root@pts unix2[]DGRAM15722476/dbus-daemon unix3[]STREAMCONNECTED11122476/dbus-daemon
可以看出22端口被9646号进程监听着.
2.2查看占用某个端口的进程
#命令为fuser: [root@onepiece~]#fuser-v-ntcp22 USERPIDACCESSCOMMAND 22/tcp:root9646F....sshd root9649F....sshd
2.3杀死某个端口的占用进程
[root@onepiece~]#kill-s99646(进程号)
说明:
-9参数表示告诉操作系统直接杀死进程,无论进程的状态是否可杀死;
该命令只杀死某个进程,比killall命令相对安全一点.
参考阅读:
Linux中如何解除端口占用
总结
以上所述是小编给大家介绍的Linux查看端口的占用情况并找出并杀死占用进程的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!