关于nginx:nginx-error-invalid-PID-number-in-nginxpid-的解决办法

52次阅读

共计 823 个字符,预计需要花费 3 分钟才能阅读完成。

nginx 批改配置文件后,重启的时候呈现了,这个提醒。`nginx: [error] invalid PID number ""in"/tmp/nginx.pid"`。意思是说 不能在文件 `/tmp/nginx.pid` 中找到无效的 PID(过程 ID)。解决的方法有两种,第一 kill 掉 nginx 主过程,而后启动 nginx。第二:把 nginx 的主过程的 pid 写入 nginx.pid 文件,而后失常的重启。

第一种办法杀掉 nginx 主过程, 而后重启

# 重启前肯定要先查看,配置文件是否正确,没有问题再重启
nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

# 关掉 nginx 的所有过程
killall nginx

# 重新启动 nginx
nginx

第二种办法把 nginx 的过程号从新写入 nginx.pid 中,而后失常重启

# 首先找到 nginx 过程 pid
ps aux | grep "nginx: master" | grep -v pts | awk '{print $2;}'

# 或者间接写入
#须要留神的是,nginx.pid 的文件的门路,不同的配置,可能门路是不同的。能够从 nginx.conf 的主配置文件中取得。echo `ps aux | grep "nginx: master" | grep -v pts | awk '{print $2;}'` > /tmp/nginx.pid

# 而后重启
nginx -s reload

找起因

nginx 重启的时候,须要晓得,本身的 PID 是多少,而这个值是写在 nginx.pid 中,如果这个文件的值被批改或者删除,就会呈现问题。这个值是能够被批改的,如果把外面的值批改成其余过程的 PID, 用 root 账号重启 nginx 的时候,领有该 PID 的过程一样会被 kill 掉。

正文完
 0