2011-10-04 68 views
17

我发出了一个nginx -s停止,然后在尝试重新载入时出现此错误。Nginx无效的PID号码

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

即在/ var /运行/ nginx的/ pid文件是空的大气压。

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

回答

24

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

+4

在当前发行版的股票安装中,您可能会想要使用启动脚本:'sudo service nginx start' –

12

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

须藤/etc/init.d/nginx开始

上面的命令将开始于Debian/Ubuntu该服务。如果有任何问题(如Apache在同一个端口监听)

是nginx的-s重装后会像一个魅力

7

在最新版本(1.2.0),它会发出一个错误,我下载没有“-S启动”选项,它会说 nginx的:无效选项:“-S启动”

您可以通过

sudo /etc/nginx/sbin/nginx 

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

5

在我的情况下,nginx停止了(我假设崩溃了)。通过以下方式解决了问题:

service nginx status 
nginx stop/waiting 

service nginx start 
nginx start/running, process 3535 

然后nginx -s重新加载就像一个魅力。

我使用nginx/1.8.0在trusty上。

+0

nginx文档如何很奇怪ation不包含这些命令。只是说“启动nginx,运行可执行文件。”! 我不知道他们为什么不包括行: ** sudo服务nginx开始** < - 这工作从我 –

0

为了避免停机与重启nginx的,

ps aux | grep nginx 
PID of nginx master process 

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

这将清除出了问题,在Ubuntu 16.04及以上

sudo service nginx stop  

sudo service nginx start 

ps -eaf|grep nginx  # confirm its running 

sudo nginx -t && sudo nginx -s reload # confirm config is OK 

#  typical output 
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok 
# nginx: configuration file /etc/nginx/nginx.conf test is successful 


sudo service nginx stop # issue stop 

ps -eaf|grep nginx  # confirm it actually stopped 

现在神智已经恢复了,你可以自由随意

推出