¿Hay alguna diferencia entre llamar
systemctl reload nginx
y llamando
nginx -s reload
?
Sé que, además de systemd, hay otros sistemas init como SysV y Upstart. Entonces, tal vez esta pregunta también se aplica a ellos.
¿Es preferible emitir este comando a través del sistema init o simplemente puedo llamar a nginx?
Gracias por adelantado
service
oinit.d
, comosudo service nginx reload
Respuestas:
Puede averiguar qué
systemd reload nginx
hará mirando laExecReload=
opción en la[Service]
sección en elnginx.service
archivo de la unidad (ubicado en/usr/lib/systemd/system/nginx.service
mi sistema):O ejecutando:
En mi sistema, obtengo:
De
nginx(8)
:Así
systemctl reload nginx
ynginx -s reload
, casi , haremos lo mismo.Las diferencias son:
systemctl reload nginx
ejecutará el comando en un entorno limpio (y no en el entorno del usuario actual);systemctl reload
funciona para cualquier servicio que lo permita (que lo tiene configurado en el archivo de la unidad). No es necesario recordar los comandos específicos del servicio. Esto es aún más interesante si tiene varias instancias de un servicio.El uso
service
o losinit.d
scripts son formas heredadas / obsoletas de hacer lo mismo. Aunque podrían funcionar, ya no se admiten ni se recomiendan en un sistema basado en systemd.fuente
Actualmente hay una diferencia en Centos 7 y RHEL 7. El uso de systemctl reload nginx NO validará su configuración.
Consulte el siguiente error: https://bugzilla.redhat.com/show_bug.cgi?id=1565377
Por lo tanto, recomendaría usar nginx -s reload o actualizar su archivo de unidad nginx para usar el siguiente comando de recarga:
https://bugzilla.redhat.com/attachment.cgi?id=1419614&action=diff
fuente