Nginx中logs的nginx.pid文件引发的问题
- Q1:nginx: [error] CreateFile() "D:\software\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)
- Q2:nginx: [error] invalid PID number "" in "D:\software\nginx-1.22.1/logs/nginx.pid"
- Q3:新启动的nginx的nginx.pid会覆盖旧的nginx.pid
Q1:nginx: [error] CreateFile() “D:\software\nginx-1.22.1/logs/nginx.pid” failed (2: The system cannot find the file specified)
想要停止nginx应用,发现控制台提示上面的报错,找不到nginx.pid
A1:那么我们就在nginx的安装目录下的logs文件夹中创建nginx.pid文件
Q2:nginx: [error] invalid PID number “” in “D:\software\nginx-1.22.1/logs/nginx.pid”
想要停止nginx应用,发现控制台提示上面的报错,这个说明我们新创建的nginx.pid中没有找到nginx的PID。
A2:所以我们找到nginx的pid,并且填入nginx.pid文件中即可。
tasklist /fi "imagename eq nginx.exe"
这里如何找到nginx的pid,参考在 Windows 中关闭 Nginx 所有进程_windows 怎么关闭nginx-CSDN博客
找nginx的pid时,我们可能会遇到多个pid,不知道如何选择时,可以参考Windows下nginx报错解决:CreateFile() “xxx/logs/nginx.pid” failed
最后附上nginx.pid的格式
没错,就是守护线程的pid。我一开始还以为像MySQL那样需要[mysqld]这种配置,结果人家简简单单。
Q3:新启动的nginx的nginx.pid会覆盖旧的nginx.pid
我在Q2中的4852还没关闭,又启动了一次nginx,导致我查询的时候发现四个pid。但是查看logs文件夹下的nginx.pid时,发现4852不见了,取而代之的是新pid。
因此如果没有仔细检查的话,接下来的各种操作可能会一直报错。