¿Cómo reiniciar nginx?

95

Para mí, ejecuto "killall nginx" y lo inicio con "sbin / nginx", ¿alguien tiene un script de reinicio mejor?

Por cierto: instalo nginx desde la fuente, no encuentro el comando 'service nginx' o /etc/init.d/nginx

larry
fuente
1
¿Por qué estás instalando desde la fuente? Los paquetes Nginx están disponibles para la mayoría de las distribuciones linux de Server. O podría lanzar sus propios paquetes, pero no usar paquetes es un error para la mantenibilidad.
Tom O'Connor
por mod_rails
larry

Respuestas:

150

El paquete nginx proporciona un script /etc/init.d/nginx que proporciona la funcionalidad habitual de inicio | detención | reinicio | recarga ...

/etc/init.d/nginx restart

reiniciará nginx

como lo hará

service nginx restart

Editar

Aquí hay un enlace a un script que puede usar como /etc/init.d/nginx.

Iain
fuente
2
Depende de tu repositorio. La fuente de Nginx no proporciona scripts de inicio, por lo que si desea actualizarse y compilar desde la fuente, tendrá que obtener uno de la wiki.
Martin Fjordvald
1
Debo tomar más café antes de responder preguntas ...
user9517
¿a qué apunta el reinicio del servicio nginx y es apropiado volver a cargar algo cuando se realiza un cambio en init.d / nginx? Mis dos comandos (/etc/init.d/nginx y service nginx) parecen no estar sincronizados.
Danny
@Danny: no sé, escribí esto hace> 2 años.
user9517
15

http://wiki.nginx.org/CommandLine

dentro de los enlaces hay algunos comandos para iniciar y detener el servidor nginx

para iniciar nginx:

/usr/bin/nginx

para detener nginx:

/usr/bin/nginx -s stop

/usr/bin depende de dónde instales tu nginx

LiJung
fuente
4

Por alguna razón, en el sistema embebido en el que estoy trabajando es:

systemctl restart nginx
cardamomo
fuente
1
Esta pregunta y la mayoría de las respuestas tienen ocho años y son obsoletas. Esa es "alguna razón". Esta es la forma correcta de hacerlo en los sistemas operativos Linux actuales.
Michael Hampton
De acuerdo, entonces tal vez no solo sea cierto para los sistemas embebidos entonces
cardamomo
1

Después de editar los archivos de configuración, lo reinicio así en OpenBSD:

kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && \
    tail -2 /var/www/logs/error.log ; date

La HUPseñal hace que vuelva a leer sus archivos de configuración, tailmuestra si se han encontrado errores, datepone esos errores en el contexto (se ha producido un error solo si el tiempo transcurrido datecoincide con el tiempo del registro) y sleep 1garantiza que haya no hay condiciones de carrera entre la lectura del registro antes de que nginx haya tenido tiempo de escribir en él.

Así es como se ve:

Cns# kill -HUP `cat /var/run/nginx.pid` && date && sleep 1 && tail -2 /var/www/logs/error.log ; date
Tue Feb 12 10:58:52 PST 2013
2013/02/12 10:03:35 [emerg] 8120#0: directive "set" is not terminated by ";" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:226
2013/02/12 10:04:19 [emerg] 8120#0: invalid return code "$uri_def" in /etc/nginx/conf.d/etc.ngx.grok/bxr.su.conf:231
Tue Feb 12 10:58:53 PST 2013
Cns# 

El hecho de que el tiempo desde el registro no esté entre las horas impresas dateindica que no se han encontrado errores esta vez, y que la nueva configuración es buena.

cnst
fuente
0

Puede encontrar scripts de inicio en el Wiki de NginX: http://wiki.nginx.org/Configuration#Init_Scripts

La función de reinicio ejecuta el siguiente comando:

BASEDIR=
$BASEDIR/sbin/nginx -s stop
$BASEDIR/sbin/nginx $BASEDIR/conf/nginx.conf

Si ha instalado nginx en / opt / nginx, reemplácelo BASEDIR=por BASEDIR=/opt/nginx.

Lekensteyn
fuente
0

Por lo general, los paquetes instalados desde el origen no instalan el script de inicio en /etc/init.d/. Tienes dos opciones.

1- Puede buscar un script en el directorio del código fuente o en el sitio web, y personalizarlo si es necesario.

2- Puede copiar un script de inicio para otro paquete de su sistema y personalizarlo.

Khaled
fuente