O que é a opção '-KILL' no comando 'pkill'?

0

Eu encontrei uma maneira de sair de qualquer usuário usando a linha de comando. Ao executar o comando pkill -KILL -u <username> , agora posso me desconectar da sessão que inseri.
Minha pergunta é por que não há descrição sobre a opção -KILL ou sobre a opção disponível em man pkill nem em pkill --help .
Eu estou usando Ubuntu Mate 16.04 . Muito obrigado antecipadamente.

    
por Tower 31.01.2018 / 17:08

1 resposta

4

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.

    
por 31.01.2018 / 17:13

Tags