单独拆分一篇小文章,貌似上一篇文章篇幅有点多,更多内容能够见上一篇文章,答疑解惑之nginx,欢迎各位大佬去提出意见啊!!!nginx
针对macOs系统,咱们通常用Homebrew去安装nginx,可是咱们执行nginx重启命令有时候会遇到如下错误:设计模式
nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)
复制代码
看字面大概意思是没有nginx.pid文件,下面咱们进到/usr/local/var/run/
目录发现确实没有这个文件。你们都知道通常解决办法都是在终端执行下面的命令:bash
sudo nginx -c /usr/local/etc/nginx/nginx.conf
复制代码
那为何执行这个命令就有这个文件了呢?post
咱们都知道 nginx -c 命令是指定一个配置文件,当在终端执行完后发现不报错了,咱们如今能够看下这个文件的内容到底是什么。ui
在终端执行下面的命令:spa
cat /usr/local/var/run/nginx.pid
复制代码
查看该文件的内容,发现内容只有一行数字。设计
这个数字实际上是该进程的id,这个文件的做用是为了防止启动多个进程副本。3d
咱们能够用ps -ef|grep nginx
查看nginx的进程信息:code
这个时候问题又出来了,为何会有多个id?cdn
nginx遵循Master-Worker设计模式,是以多进程的方式来工做的,nginx在启动后,会有一个master进程和多个worker进程,master进程主要用来管理worker进程(因此也能够用kill -QUIT 主进程号
等方法关闭nginx)。
当主进程存在时,nginx.pid文件就会存在,内容为主进程id,当进程关掉后nginx.pid文件也就自动删除了,因此须要咱们去指定配置文件。
更多内容能够见上一篇文章,答疑解惑之nginx 🎉🎉🎉🎉🎉