SIGQUIT é o mesmo que SIGTERM?

13

Estou aprendendo o CentOS / RHEL e atualmente fazendo algumas coisas sobre gerenciamento de processos.

O livro RHCSA que estou lendo descreve a execução kill 1234como o envio de SIGQUIT. Eu sempre pensei que o comando kill sem adicionar um comutador para o tipo de sinal deveria usar como padrãokill -15

SIGTERM é kill -15e SIGKILL é kill -9, certo?

O CentOS / RHEL usa um método ligeiramente diferente kill -15ou acabei de me enganar?

EDIT: kill -lfornece SIGQUIT como kill -3e parece estar associado ao uso do teclado para finalizar um processo. man 7 signaltambém afirma que SIGQUIT é kill -3, portanto, posso apenas assumir que meu livro está errado ao afirmar que SIGQUIT é o kill -15padrão.

bitofagoob
fonte

Respostas:

13

Não, eles não são os mesmos. A ação padrão para ambos é finalizar o processo, mas SIGQUITtambém despeja o núcleo. Veja, por exemplo, a página de manualsignal(7) do Linux . killPor padrão, envia o SIGTERM, portanto, posso apenas imaginar que a menção de SIGQUIT como padrão é de fato apenas um erro. Esse padrão está no POSIX , assim como os números para SIGTERM, SIGKILL e SIGQUIT.

ilkkachu
fonte
1
Sim. Acho que o livro está errado, porque também lista SIGQUIT como -15. O sinal -15 é uma maneira tão estabelecida de terminar um processo no mundo Linux que não há dúvida de que é um erro de impressão. Marcarei sua resposta como correta. Obrigado por expandir o que o SIGQUIT faz.
Bitofagoob 14/05
1

Existem dois comandos kill, um no procps e outro no shell. Ambos usam o SIGTERM como padrão. Para procps kill, o comando help, manual page e kill source (skill.c linha 724 na última ramificação mestre) dizem SIGTERM, o que é bom saber que é consistente.

Uma coisa a lembrar sobre os sinais é que, quando você começa a ultrapassar o "grupo usual" e usa os sistemas um pouco mais diferentes do sistema Linux x86, pode achar que os sinais não estão lá ou que têm números diferentes. procps (e provavelmente muitos outros programas) compõe os números em tempo de compilação (essencialmente qualquer que seja o arquivo de inclusão, procure signum.h).

Não é algo para se preocupar com o SIGTERM, como @ilkkachu diz, está no POSIX.

Craig Small
fonte
Manpage para skill diz que skill e snice são obsoletas. Gostaria de saber por que eles não foram removidos do espaço do usuário? Informações interessantes, de qualquer maneira. Obrigado.
bitofagoob