2011-10-04 102 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 

現在神智已經恢復了,你可以自由隨意

推出