Tentei matar todos os meus trabalhos em segundo plano enviados anteriormente no KUbuntu por
kill -9 $(jobs -p)
Embora este comando tenha imediatamente transmitido a mensagem como
[1] Meu trabalho matou1
[2] Meu trabalho matou2
Ainda consigo ver seus processos pendurados na saída do topo e os usos da CPU e da memória não são alterados na saída do tempo de atividade e livre.
Então acho que não devo tê-los matado adequadamente. Alguém pode explicar o que está acontecendo comigo e o que devo fazer?
Descobri que no topo, se digitar k e inserir o PID, posso matar os processos um por um. Então isso é diferente do comando kill?
Eu também encontrei em algum lugar online http://www.ruhr.de/home/smallo/award.html sobre não recomendar kill -9
Carta de formulário Uso Inútil da Matança -9
(Citar abominação)
Não não não. Não use kill -9.
Não dá ao processo a chance de limpar:
1) desligue as conexões do soquete
2) limpar arquivos temporários
3) informar seus filhos que está indo embora
4) redefinir suas características terminais
e assim por diante e assim por diante.
Geralmente, envie 15 e aguarde um ou dois segundos e, se isso não funcionar, envie 2 e, se não funcionar, envie 1. Se isso não funcionar, REMOVA O BINÁRIO, pois o programa está se comportando mal!
Não use kill -9. Não traga a colheitadeira apenas para arrumar o vaso de flores.
Isso é verdade? O que significa "enviar 15", "enviar 2" e "enviar 1"? Eles são comandos próprios ou "matam -15 PID", "matam -2 PID" e "matam -1 PID"?
Obrigado e cumprimentos!
Respostas:
Seu processo provavelmente está inoperante, mas ainda aparece na entrada da tabela de processos porque é um "processo zumbi". Quando um processo filho é encerrado e desaparece completamente (exceto sua entrada na tabela de processos) e o pai não consegue obter seu status de término (através de qualquer uma das funções de espera), ele é chamado de zumbi ... Matando (através do sinal) um zumbi não trabalho porque já está encerrado. O que você precisa fazer é descobrir o processo pai e matar um deles de maneira limpa, sem usar o kill - 9
aqui estão dois passos simples para matar um zumbi ...
fonte
-f
sinalizador para ps para ver os processos pai.veja
man kill
para uma definição dos vários sinais disponíveis, mas sim.Eles informam a um processo que o usuário está "terminado" com o processo, embora indiquem razões um pouco diferentes.O SIGTERM pode ser interpretado como "concluir a tarefa atual, mas depois sair; não iniciar outro", SIGINT significa "abandonar o que você está fazendo e encerrando ", SIGHUP significa apenas que ninguém está mais ouvindo (um processo do servidor pode legitimamente reagir ao SIGHUP, interrompendo a saída do console e continuando em execução).
fonte
Significa usar
kill -15 PID
(ou outro número) em vez dekill -9 PID
. Os números são equivalentes a diferentes sinais unix .fonte
Significa digitar "kill -1" ou "kill -15" em vez de digitar "kill -9". Kill -9 é uma bala pesada na cabeça de qualquer processo em execução, mata-a morta em um estado sujo que pode causar vazamento de memória, blá-blá-blá.
Se você estiver digitando kill -9 e não estiver funcionando, verifique se o processo não está sendo reaparecido e se você tem permissão para interromper esse processo.
fonte
O sinal 9 é SIGKILL. Enviar um SIGKILL está pedindo ao sistema operacional para interromper imediatamente o processo, sem perguntas. O processo não é notificado com antecedência e não tem chance de limpar a si próprio.
O sinal 15 é SIGTERM. O envio de um SIGTERM está pedindo ao sistema operacional que peça ao processo que se desligue.
SIGKILL pode ser ignorado se o sistema operacional achar que o processo está executando IO ou se for um zumbi (um processo filho cujo pai não limpou depois dele).
O SIGTERM pode ser ignorado pelo aplicativo, mas não é recomendável que os aplicativos façam isso, pois os sistemas operacionais enviam o SIGTERM durante o desligamento, seguido em breve pelo SIGKILL se um programa ainda estiver em execução.
Nota: A linha de comando
kill
está sempre pedindo ao sistema operacional para enviar um sinal para o aplicativo, o que pode ou não ser feito com base em quem é o proprietário do processo, etc.fonte