Percebi que muitos dos comandos like nginx -s reload
e nginx -s stop
parecem ser (quase?) iguais a service nginx reload
and service nginx stop
.
Esses "prefixos" são realmente intercambiáveis? Um deles de alguma forma invoca o outro?
Responder1
Como você está executando o Ubuntu 18.04 (ou seja, uma distribuição Linux recente), posso sugerir uma terceira“alias”comando: systemctl reload nginx
e /etc/init.d/nginx reload
.
A história toda é esta: cada servidor/aplicativo tem sua própria maneira de iniciar, parar, recarregar, etc. Isso pode ser tão simples quanto chamar nginx
ou complicado como definir diversas variáveis de ambiente e chamar java <a_lot_of_options> org.apache.catalina.startup.Bootstrap start
o Tomcat.
Para fornecer uma maneira uniforme e automática de iniciar aplicativos, as distribuições fornecem scripts de inicialização (ou similares), que em um novo Ubuntu vêm em três variantes:
- O modernosistema:
systemctl <verb> nginx
, - O legado (para Ubuntu)subir na vida:
service nginx <verb>
, - O mais velhoInicialização SysV:
/etc/init.d/nginx <verb>
.
No Ubuntusistemaé o que está em execução, enquanto os outros chamamsistema. A configuração ( /lib/systemd/system/nginx.service
arquivo) do nginx contém:
ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid
Então:
systemctl reload nginx
chamadasnginx -s reload
, mas com a opção adicional-g 'daemon on; master_process on;'
, que substitui essas duas opções de configuração,systemctl stop nginx
usa um programa auxiliarstart-stop-daemon
para supervisionarnginxdesligar. Este programa enviará umSIGQUIT
sinal para o nginx, que é o mesmo quenginx -s quit
, espere 5 segundos e se o nginx ainda estiver em execução, anunciará a falha.
Em geral é melhor usar os systemctl <verb> <service>
comandos em vez de iniciar os aplicativos sozinhos.
Editar: Na verdadesistemafaz muito mais do que executar o comando: ele conecta sua entrada/saída asystemd-journal, limita os recursos à sua disposição (grupos) e a visibilidade de outras partes do sistema (espaços para nome), ele configura o processocapacidadese provavelmente algo mais.