Por que o killall (as vezes?) precisa ser aplicado duas vezes?

2

Por que o killall (às vezes?) precisa ser aplicado duas vezes? Aqui está um exemplo onde um "duplo" killall é necessário para finalizar o processo.

Quando e por que um processo precisou ser morto "duas vezes"? O que acontece sob o capô?

    
por nutty about natty 21.09.2015 / 16:18

1 resposta

2

Vou indicar uma possibilidade específica do aplicativo.

Quando você usa killall program , um SIGTERM (sinal 15) é enviado para o programa. A resposta usual para SIGTERM é que o programa sairia normalmente.

Agora, como o SIGTERM é alcançável, um programa pode ter um manipulador de sinal para SIGTERM que executaria alguma tarefa ao receber o primeiro SIGTERM (primeiro killall ) e retornar a um estado em que o segundo SIGTERM apenas terminaria (ação padrão). Isso depende muito do desenvolvedor do programa e não de um caso geral.

    
por heemayl 21.09.2015 / 23:41