SIGQUIT é o mesmo que SIGTERM?

5

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

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

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

O CentOS / RHEL usa um método um pouco diferente de kill -15 ou acabei de ser confundido?

EDIT: kill -l fornece SIGQUIT como kill -3 e parece estar associado ao uso do teclado para finalizar um processo. man 7 signal também declara que SIGQUIT é kill -3 , então eu só posso supor que meu livro está errado em afirmar que SIGQUIT é kill -15 default.

    
por bitofagoob 14.05.2017 / 18:57

2 respostas

6

Não, eles não são iguais. A ação padrão para ambos é encerrar o processo, mas SIGQUIT também copia o núcleo. Veja por exemplo a página man do Linux signal(7) . Por padrão, kill envia SIGTERM, portanto, só posso imaginar que a menção de SIGQUIT ser padrão seja, na verdade, apenas um erro. Esse padrão está em POSIX , assim como os números de SIGTERM, SIGKILL e SIGQUIT.

    
por 14.05.2017 / 19:16
1

Existem dois comandos kill, um em procps e outro em shell. Ambos usam SIGTERM como padrão. Para procps kill, o comando help, manual page e kill source (skill.c linha 724 no branch master mais recente) todos dizem SIGTERM, o que é bom saber que é consistente.

Uma coisa a lembrar sobre os sinais é que, uma vez que você comece a ultrapassar o "grupo usual" e use sistemas um pouco mais diferentes de um sistema Linux x86, você pode descobrir que os sinais não estão lá ou têm números diferentes. O procps (e provavelmente muitos outros programas) utiliza os números em tempo de compilação (essencialmente, seja qual for o arquivo de inclusão, procure por signum.h).

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

    
por 17.05.2017 / 00:06