2011-10-04 19 views
17

Wystawiłem przystanek nginx -s i po tym wystąpił ten błąd podczas próby ponownego załadowania.Nginx Nieprawidłowy numer PID

[Błąd]: nieprawidłowy numer PID "" w "/var/run/nginx.pid"

, że/var/run/nginx plik/PID jest pusty atm.

Co należy zrobić, aby to naprawić?

Odpowiedz

24

Przeładowanie nginx -s służy tylko do informowania o uruchomionym procesie Nginx, aby przeładować jego konfigurację. Po zatrzymaniu nie masz działającego procesu nginx, aby wysłać sygnał. Po prostu uruchom nginx (prawdopodobnie z -c/path/to/config/file)

+4

Na aktualnej instalacji aktualnych dystrybucji, prawdopodobnie będziesz chciał użyć skryptu startowego: 'sudo service nginx start' –

12

w moim przypadku rozwiązałem to, uruchamiając usługę.

sudo /etc/init.d/nginx rozpocząć

Komenda powyżej rozpocznie służbę w Debian/Ubuntu. wyda błąd, jeśli jest jakiś problem (jak Apache słuchania w tym samym porcie)

po tym nginx -s reload będzie działać jak czar

7

W najnowszej wersji (1.2.0), które pobrałem nie ma opcji „-s start”, to znaczy nginx: nieprawidłowy opcja: „-s start”

można rozpocząć nginx przez

sudo /etc/nginx/sbin/nginx 

zostanie uruchomiony serwer a potem przyzwyczajenie się wszelkie nieprawidłowe błędy numeru pid.

5

W moim przypadku nginx został zatrzymany (rozbił się, zakładam). Rozwiązano problem przez:

service nginx status 
nginx stop/waiting 

service nginx start 
nginx start/running, process 3535 

Następnie przeładowanie nginx-a działało jak czar.

Używam nginx/1.8.0 na wiernym.

+0

To jest bardzo dziwne, jak dokument nginx nie zawiera tych poleceń. Po prostu powiedz "Aby uruchomić nginx, uruchom plik wykonywalny." !! Nie wiem, dlaczego nie uwzględniono linii: ** sudo service nginx start ** <- to działało ode mnie –

0

Aby uniknąć przestojów o ponowne uruchamianie nginx,

ps aux | grep nginx 
PID of nginx master process 

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

To będzie pozbyć się problemu na Ubuntu 16.04 i powyżej

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 

teraz rozsądek został przywrócony i jesteś wolny, aby uruchomić do woli