nginx 重启/停止/退出失败

启动Nginx时候报错:
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)

这句话的意思就是,你的nginx.pid 打开失败,今天我也是被这个问题困扰了半天,但是我就是要弄懂它。

事情的经过是这样的,我先下载nginx,然后上传都root目录下,进行对应的环境安装下载,万事俱备之后,我用./nginx命令(默认启动方式启动成功)。
然后我想停止的时候,无法停止,也无法退出,一直报上面那个错误。
我就去查询相关知识,并且自己重复测试,总是弄明白了,我也不知道算不算弄明白,不过还是记录一下。

应为我上传的配置文件是这样的(这是部分配置,在头部几行的位置),

#pid        logs/nginx.pid;

我对应的这个配置被注释掉了,然后我就把注释打开了,然后更改路径为niginx的安装默认路径

/usr/local/nginx/logs/nginx.pid

到这里你就解决了大半

之后就有两种解决方法
第一种:

ps aux|grep nginx //查看nginx的进程
kill 进程号//普通的手段已经无法退出

之后再重新启动,就会发现问题已经解决,stop,relaod,quit命令都可以使用,
已经在你设置的目录下生成了对应的nginx.pid文件,它会去使用nginx.pid文件中保存的进程号。

第二种:
既然我们知道它是拿nginx.pid文件中的进程号来进行一系列的操作,那我们就直接用

ps aux|grep nginx //查看nginx的进程

然后把获取到的进程号放到nginx.pid文件中,就可以使用一系列的命令了。

其实还有第三种方法
绕过了nginx.pid文件

nginx路径 -c ningx配置文件
以配置文件的形式启动nginx

你学废了嘛?