1.[root@VM-4-2-centos sbin]# ./nginx -s reopen
nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
2.var/run/nginx.pid文件
首先 var/run这个目录是干嘛用的?
此文件夹包含描述系统启动以来系统信息的数据。此文件夹下的文件必须在启动过程初期清除(删除或归零)。程序可以在/var/run
下有自己的子文件夹。原先放在/etc
下的进程标识(PID)文件必须放
在/var/run
里面。PID文件的命名惯例是<program-name>.pid
。所以,nginx的PID文件名为/var/run/nginx.pid
。
nginx.pid存放的是nginx的master进程的进程号。
3.为什么会报错
1、新安装nginx第一次启动使用 nginx -s reopen启动
2、nginx被停止时,var/run/nginx.pid被删除了。 而 reopen和 reload命令需要通过nginx.pid获取进程号,会去找var/run.nginx.pid ,如果不存在,就报错了。
4.总结
reopen是在nginx启动的情况给做分割日志用的, reload也是在nginx启动的情况下做平滑重启的,他们都依赖于nginx进程存在的情况下。 并不是字面上启动或打开的意思。
真正的启动命令是: nginx 或者 nginx -c 指定目录的配置文件 nginx.conf。 查看进程存在即表明启动成功,之后再调用reload和reopen就不会报错了。
使用 nginx
nginx -c /usr/local/nginx/conf/nginx.conf