Nginx: [error] open() “/usr/local/nginx/logs/nginx.pid“ failed (2: No such file or directory)

        解决Nginx因服务器异常重启后,重新加载./nginx -s  reload命令时,会出现报错问题:Nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

        nginx.pid这个文件主要的作用是为了防止用户同时启动多个nginx(其他PID文件也是相同的道理)。那nginx在启动时怎么知道已经有正在运行的Nginx了呢?每一个Nginx都是一个进程,每个进程都有一个全局唯一的id号,叫做pid。进程无法检测其他进程的,那么在启动nginx时也就不知道当前有没有nginx服务。为了能进行沟通,必须要有一个东西来传递信息,这个东西就是pid文件,里面保存的是进程的id值。

        当Nginx启动时,会先检测有没有nginx.pid文件,如果没有则创建一个,并把自身的pid写进去。如果检测到已经有了nginx.pid文件,但nginx检测到并没有哪个进程的id和该文件中id值相同,那么pid指向的进程不存在,nginx会正常启动,并把本次启动的pid写入nginx.pid文件中,反之,如果检测到有nginx.pid文件,同时该pid指向的进程存在,则说明nginx服务已经存在,那么本次启动nginx服务会报错。

第一种方式解决:

第1步:查看nginx的运行进程  :ps -ef|grep nginx

 第2步:杀死nginx或者停止nginx的服务:pkill  -9  nginx

第3步:修改nginx的配置文件,打开pid的进程的绝对路径:/usr/local/nginx/logs/nginx.pid

第4步:在配置文件的所编辑的路径下创建默认的pid文件:

cd   /usr/local/nginx/logs/

 vi  nginx.pid   

 第5步:启动nginx即可解决;

第二种方式解决:

第1步:停止nginx的服务:pkill   -9  nginx

第2步:使用配置文件启动nginx

sudo /usr/local/nginx/sbin/nginx -t  -c /usr/local/nginx/conf/nginx.conf

最后nginx的最常用的命令

1、启动命令:./nginx  启动

                      sudo /usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf

2、检测配置文件的命令:

                       sudo /usr/local/nginx/sbin/nginx -t  -c /usr/local/nginx/conf/nginx.conf

3、重新加载的命令:./nginx  -s  reload

4、停止服务退出的命令:./nginx -s stop 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值