Administração de Linux
medium

Administração de Linux Question #019e3987

Question Statement
Administração de Linux
#sighup
#killall
#daemon-reload
#signal-handling
#process-signals
Medium

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

A

SIGKILL

B

SIGTERM

C

SIGHUP

Correct
D

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 por kill e killall. 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.