2012-06-07 5 views
9

mio nginx è stato compilato dalla sorgente, solo dare la bandiera che --conf-path=/etc/nginx/nginx.confAggiungi nginx come una fermata di servizio Ubuntu e ricarica non funziona

Tutto funziona e stavo cercando di utilizzare il servizio this lo script init.d per rendere nginx come servizio di sistema,

Ecco lo script che ho fatto solo 2 piccole modifiche:

1. DAEMON=/usr/local/nginx/sbin/nginx 

2.NGINX_CONF_FILE="/etc/nginx/nginx.conf" 

quindi avviare il servizio sudo nginx

funziona

[email protected]:/usr/local$ sudo service nginx start 
* Starting Nginx Server... 
    ...done 

.

ma fermata del servizio nginx e servizio nginx ricaricare

mi invia un errore di

[email protected]:/usr/local$ sudo service nginx stop 
* Stopping Nginx Server... 
    ...fail! 

e l'errore non compare il file di log/error.log

risposta

20

ho avuto problemi simili con Nginx su Ubuntu 12.04, con nginx compilato da sorgente e script init preso da una fonte simile alla tua.

Il servizio è iniziato bene con il file init, ma non è stato arrestato o riavviato. Alla fine la causa era un diverso percorso del file pid in nginx.conf e lo script di init. Assicurarsi che entrambi puntino allo stesso percorso.

+0

grazie per la risposta. Ho aspettato a lungo. Potresti spiegare più dettagli per fare ciò che permetta loro di indicare la stessa posizione? – mko

+3

@yozloy nel tuo file nginx.conf, trovi la riga "pid /tmp/nginx.pid;" dovresti usare quella directory e cambiare il percorso degli script di init del file pid per ciascuna azione nel tuo script di init. – Philip

+0

Per situazioni in cui l'arresto/riavvio non riesce a intermittenza (spesso elimina il file PID, ma i processi incluso il master non moriranno), vedere [questa risposta] (http://unix.stackexchange.com/questions/119037/why- doesnt-arresto-il-nginx-server-uccidere-il-processi-associato-con-it). – Ville

Problemi correlati