nginx状态已启动,但实际未运行的解决方法
问题描述
nginx服务,当执行命令service nginx start之后提示Starting nginx… nginx (pid ) already running…,提示nginx已经运行,利用service nginx status查看提示:nginx (pid ) is running…,说明确实已经运行了。但是web服务依然无法访问,通过netstat -lnpt查询正在运行的TCP协议,处理listen状态,也没有显示nginx在运行,ps aux|grep nginx 查看进程,也没有显示nginx在运行。
问题原因
打开nginx启动脚本,发现执行start的时候会判断是否存在nginx.pid文件,由于上次非正常关机,导致nginx没有执行stop,也就没有删除nginx.pid,所以nginx服务实际并未运行。
解决方法
找到nginx.pid所在的目录,删除nginx.pid 启动nginx服务即可,当然,如果想以后非正常关机后,重新启动nginx不会出现问题,还需要自己去编辑启动文件,在判断的时候不是直接进行判断文件是否存在,而是判断该进程是否在运行,如果不在运行再判断文件是否存在,如果存在
就删除,然后进入启动程序。