nginx被停止(nginx -s stop)或者直接杀掉了进程(kill -9 nginx的进程号)后,调用命令(nginx -s reload 或者 nginx -s reopen)会报错:无法找到 “var/run/nginx.pid”文件。
这句话中,有好几个知识点,也包含了一些错误,错误得把reload或者reopen当做了启动的命令。来依次总结一下:
1.nginx的常用命令
停止:
直接杀nginx进程。 ps aux|grep nginx 查看nginx的主进程号, 调用 kill -9 nginx的进程号 来强制停止nginx。(还有 ”kill -quit nginx的进程号” 来从容停止nginx, ”kill -term nginx的进程号”来快速的停止nginx)
调用 nginx -s stop 快速停止nginx
调用 nginx -s quit 完整有序的停止nginx
启动:
进入nginx安装目录/sbin/下执行
nginx 或者 nginx -c 特定位置的nginx.conf (一般默认是 nginx -c ./logs/nginx.conf)
重启:
nginx -s reload 平滑的重启。配置重载。
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制等控制。
nginx -s reload 命令加载修改后的配置文件,命令下达后发生如下事件
1. Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影