红联Linux门户
Linux帮助

Linux使用Lsof命令解决端口占用问题的方法

发布时间:2016-11-24 11:39:17来源:landiannews.com作者:蓝点网
在Linux Server上通常比较容易出现端口占用问题导致部分程序无法启动的。
例如在Cent OS上配置另一个域名的HTTPS时就出现操作错误导致Nginx无法启动的。
 
复原一下出现错误的操作步骤:
1、修复网站的配置文件conf添加监听443端口以及证书名称;
 
2、重启Nginx来使刚刚的配置生效;
 
3、Nginx重启报错:
/usr/local/nginx/conf/max.lancdn.com.crt failed:No such file or directory
/usr/local/nginx/conf/max.lancdn.com.key failed:No such file or directory
从Nginx报错的信息来看是没有找到证书文件,仔细一看原来是我把证书上传错了位置。
 
4、将证书文件上传至服务器上正确的位置,再次重启Nginx服务;
 
5、Nginx再次报错,这次报错的提示是端口已经被使用:
nginx: [emerg] bind() to 0.0.0.0:443 failed (98: Address already in use)
端口已经被占用的情况下重启Nginx不行了,那么我们需要干掉占用443端口的进程。
我们可以利用Lsof来查看哪些进程正在占用哪些端口,首先当然需要安装Lsof。
执行yum -y install lsof来进行安装,安装后使用lsof -i [端口号]来查看占用的进程。
Linux使用Lsof命令解决端口占用问题的方法
例如我需要查看443端口则使用lsof -i:443结果如下:
ssserver 3773 nobody 4u IPv6 676585596 0t0 TCP *:https (LISTEN)
ssserver 3773 nobody 5u IPv6 676585599 0t0 UDP *:https
占用的进程PID是3773,所以我们直接干掉这个进程来释放443端口。
键入命令kill -9 3773并回车,执行成功后再重启Nginx顺利解决问题。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26287.html