Administração de Linux Question #019e3987
Qual sinal está faltando no seguinte comando, que é comumente usado para instruir um daemon a se reinicializar, incluindo a leitura de arquivos de configuração?
killall -s _______ daemon
SIGKILL
SIGTERM
SIGHUP
SIGINT
Official Explanation / Community Explanations
O sinal que falta é SIGHUP. O comando killall -s SIGHUP daemon envia o sinal SIGHUP para todos os processos nomeados daemon. O sinal SIGHUP é comumente usado para instruir um daemon a se reinicializar, incluindo a releitura de seus arquivos de configuração, sem interromper e reiniciar completamente o processo. Esse comportamento é uma convenção para muitos daemons Unix (por exemplo, Apache, sshd, syslogd).
Como funciona
Os sinais são uma forma de comunicação entre processos em sistemas do tipo Unix. O comando killall envia um sinal específico para todos os processos que correspondem a um determinado nome. A opção -s especifica o sinal a ser enviado. O SIGHUP (sinal número 1) tradicionalmente indica o encerramento de uma conexão em um terminal, mas os daemons o reutilizam como uma diretiva de "recarregar" ou "reinicializar". Quando um daemon recebe um SIGHUP, ele normalmente fecha e reabre arquivos de log, lê novamente arquivos de configuração ou realiza uma reinicialização normal.
Por que o valor correto está certo
SIGHUP é o sinal padrão para solicitar que um daemon recarregue sua configuração. Muitos daemons implementam um manipulador SIGHUP que aciona uma sequência de reinicialização. Por exemplo, o servidor HTTP Apache (httpd) relê sua configuração ao receber um sinal SIGHUP, e sshd também relê sua configuração. Usar killall -s SIGHUP daemon é uma tarefa administrativa comum para aplicar alterações de configuração sem tempo de inatividade.
Por que os valores incorretos estão errados
SIGKILL(sinal 9) encerra um processo à força e imediatamente. Ele não pode ser interceptado, bloqueado ou ignorado pelo processo. Não permite qualquer limpeza ou reinicialização; simplesmente mata o processo. Isso não é apropriado para instruir um daemon a reinicializar.SIGTERM(sinal 15) é o sinal padrão enviado porkillekillall. O sinal SIGTERM solicita que um processo termine normalmente, permitindo que ele libere recursos. Embora alguns daemons possam reler a configuração ao receberem o sinal SIGTERM antes de encerrar, o sinal padrão para reinicialização é o SIGHUP, e não o SIGTERM.SIGINT(sinal 2) é normalmente gerado pelo usuário ao pressionar Ctrl+C em um terminal. Ele interrompe um processo e geralmente o encerra. Não é usado para reinicialização de daemons; destina-se a processos interativos.