Normalmente, um cliente respondente deve receber um sigterm e desligar-se, encerrando assim todos os seus processos filhos bifurcados. Se, por outro lado, o cliente não estiver respondendo, um sinal de terminação normal provavelmente não provocará resposta.
Então, você passa a enviar um SIGKILL, que instrui o próprio sistema a interromper esse processo agora - o que pode ser feito na maioria das vezes, exceto quando o processo está em um estado de suspensão ininterrupta, como esperar por alguma E / S entrada ou similar.
Nesse caso, até o SIGKILL acabará não fazendo nada no processo; o processo filho provavelmente terá um estado semelhante de retardo.
Há um caso de fronteira em que o processo pai pode terminar muito bem, mas o processo filho não é passível de matança. Então você terminará com um processo de zumbi que não pode ser limpo desde que seu pai se foi, mas não está respondendo a nada. A única maneira de se livrar deles é uma reinicialização; na maioria dos casos, porém, são bastante inofensivos, pois a única coisa que fazem é usar um PID, enquanto o soquete que tentaram usar já desapareceu.
pkill -9
é mais poderoso do quepkill
, por qualquer motivo.