nginx重启报找不到nginx.pid的解决方法
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 -s reload 平滑的重启。配置重载。
nginx工作中,包括一个master进程,多个worker进程。worker进程负责具体的http等相关工作,master进程主要是进行控制等控制。
nginx -s
1. Nginx的master进程检查配置文件的正确性,若是错误则返回错误信息,nginx继续采用原配置文件进行工作(因为worker未受到影响)
2. Nginx启动新的worker进程,采用新的配置文件
3. Nginx将新的请求分配新的worker进程
4. Nginx等待以前的worker进程的全部请求已经都返回后,关闭相关worker进程
5. 重复上面过程,知道全部旧的worker进程都被关闭掉。
所以,重启之后,master的进程号不变,worker的进程号会改变。
日志分割:
nginx -s reopen
为什么要切割日志?一般Nginx安装好后有些人会打开日志记录,有些人会关闭日志记录,打开日志记录的人一般都会把架设在Nginx上的所有网站日志都存在同一个文件里(比如我存在access.log日志文件里),
这样日积月累所有网站的访问记录就会把日志文件越积越大,当需要查看日志文件的时候一看就是一大串,不方便查找。现在,如果我把每天的日志文件分割开来用相应的日期标识出来这样就大大方便查找了。
我是建议打开日志记录,日志记录里面存放着很多有用的东西。比如:浏览器名称,可以方便你对网站的排版做出调整;IP地址,如果网站收到攻击,你就可以查到那个IP地址。
Linux下我们可以简单的把日志文件mv走,但是你会发现mv走后新的日志文件没有重新生成,一般linux下用的文件句柄,文件被打开情况下你mv走文件,但是原来操作这个文件的进程还是有这个文件的inode等信息,
原进程还是读写原来的文件,因此简单的mv是无法生效的。
因此建议过程如下
1. mv原文件到新文件目录中,这个时候 nginx还写这个文件(写入新位置文件中了)
2. 调用nginx -s
这样完成了日志的切割工作, 同时切割过程中没有日志的丢失。
测试当前配置文件是否正确:
测试指定配置文件是否正确:
2.var/run/nginx.pid文件
首先 var/run这个目录是干嘛用的?
此文件夹包含描述系统启动以来系统信息的数据。此文件夹下的文件必须在启动过程初期清除(删除或归零)。程序可以在/var/run
下有自己的子文件夹。原先放在/etc
下的进程标识(PID)文件必须放
在/var/run
里面。PID文件的命名惯例是.pid
。所以,nginx的PID文件名为/var/run/nginx.pid
。
nginx.pid存放的是nginx的master进程的进程号。
3.为什么会报错
nginx被停止时,var/run/nginx.pid被删除了。
4.总结
reopen是在nginx启动的情况给做分割日志用的,
真正的启动命令是:
参考链接:http://www.cnblogs.com/happySmily/p/6003579.html
赞赏码


非学,无以致疑;非问,无以广识
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
· 重磅发布!DeepSeek 微调秘籍揭秘,一键解锁升级版全家桶,AI 玩家必备神器!