Nginx无效的PID编号

时间:2011-10-04 11:09:13

标签: nginx

我发出了一个nginx -s stop,之后我在尝试重新加载时遇到了这个错误。

  

[错误]:“/var/run/nginx.pid”中的PID编号“”无效

/ var / run / nginx / pid文件为空atm。

我需要做些什么来解决它?

8 个答案:

答案 0 :(得分:44)

nginx -s reload仅用于告诉正在运行的nginx进程重新加载其配置。停止后,您没有运行nginx进程来发送信号。只需运行nginx(可能使用-c / path / to / config / file)

答案 1 :(得分:13)

在我的情况下,我通过启动服务解决了这个问题。

sudo /etc/init.d/nginx start

上面的命令将在Debian / Ubuntu中启动服务。如果有任何问题(例如Apache在同一端口中侦听),它将发出错误

之后,nginx -s reload将像魅力一样工作

答案 2 :(得分:8)

在我下载的最新版本(1.2.0)中没有“-s start”选项,它会说 nginx:无效选项:“ - s start”

你可以通过

启动nginx
sudo /etc/nginx/sbin/nginx

服务器将启动,然后不会出现任何无效的pid编号错误。

答案 3 :(得分:5)

在我的情况下,nginx被停止了(我假设崩溃了)。解决了这个问题:

service nginx status
nginx stop/waiting

service nginx start
nginx start/running, process 3535

然后nginx -s reload就像魅力一样。

我在trusty上使用nginx / 1.8.0。

答案 4 :(得分:3)

为了避免重启nginx的停机时间,

ps aux | grep nginx 
PID of nginx master process

echo PID > /var/run/nginx.pid
nginx -s reload

答案 5 :(得分:2)

这将清除ubuntu 16.04及以上版本的问题

ts2.combine_first(ts1)

现在恢复了理智,您可以随意启动

答案 6 :(得分:1)

在CentOS 7上,我这样做是

 sudo systemctl start nginx
 #Then check all things are OK
 sudo systemctl status -l nginx

答案 7 :(得分:0)

如果nginx进程被手动停止或被终止,则会发生这种情况。

检查进程是否仍在运行:

sudo lsof -nP -iTCP:<port> | grep LISTEN

我在Mac上,并且使用以下命令重新安装了Nginx:

brew reinstall nginx

然后使用brew启动服务:

brew services start nginx