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

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

# 重启前肯定要先查看,配置文件是否正确,没有问题再重启nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful# 关掉nginx 的所有过程killall nginx# 重新启动 nginxnginx

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

# 首先找到nginx过程 pidps 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掉。