O argumento -KILL
está informando pkill
qual sinal enviar para todos os processos identificados pelos outros argumentos. Então você está enviando SIGKILL, que é uma maneira muito muito impura, faça o que você parece estar tentando fazer. Você provavelmente deseja enviar SIGHUP (com -HUP
) ou SIGTERM (com -TERM
ou omitir, já que SIGTERM é o sinal padrão para kill
/ pkill
).
Para simplificar, quando um processo recebe SIGTERM do kernel, está sendo dito "você precisa ir embora agora. Limpar depois de si mesmo e auto-terminar". A maioria dos programas bem concebidos, ao receber este sinal, prontamente se aproximará.
Quando um processo recebe o SIGHUP, está sendo dito "Ei, quem você estava falando apenas desligou". Embora isso tenha sido historicamente usado para conexões seriais que eram propensas a desconexões inesperadas, isso é frequentemente usado como um sinal para que o controle de tarefa de um shell desative todos os processos pendentes (ou tempos para que um daemon se reinicialize ou repare seu arquivo de configuração ).
Quando um processo recebe SIGKILL, o kernel (metaforicamente) passa por trás dele e dispara na parte de trás da cabeça. Por um lado: sem barulho, sem confusão. Por outro lado: pode haver uma grande bagunça para limpar.
Um processo KILL
ed não tem chance de limpar arquivos temporários abertos; quaisquer dados armazenados em cache podem ser perdidos e assim por diante. Não envie SIGKILL a menos que você realmente precise.