Por que esse comando 'kill' me desconecta do computador?

40

O comando a seguir me desconecta ( não execute este comando):

kill -9 -1

Eu não entendo o porquê.

Alguém pode me explicar isso?

hytromo
fonte

Respostas:

71

A sintaxe é kill SIGNAL PID.

A -9opção especifica que o SIGKILLsinal deve ser enviado (encerre imediatamente o (s) processo (s) de destino, e especificar o PID -1é uma abreviação de "todos os processos, exceto ele próprio e o init".

Como você não usa sudo(e presumivelmente não possui permissões de root), isso mata imediatamente todos os processos que você tem permissão para matar - toda a sua sessão, desconectando-o.

cronite
fonte
9
E nota, se você executar este comando com sudo como sudo kill -9 -1, em seguida, o computador será reiniciado
Anwar
Será que realmente reiniciará? Parece que apenas iria falhar.
user606723
@ user606723 o processo init não será encerrado e pode decidir o que (se houver) fazer sobre todos os outros processos que foram encerrados.
Random832
3
@ Anwar, não será necessariamente reiniciado, você passará a executar apenas o init, que pode ou não gerar um shell ou trazer outros serviços.
Mikebabcock 13/09/12
27

experimentar

man kill

para obter uma explicação do comando kill ..

diz:

Um PID de -1 é especial; indica todos os processos, exceto o próprio processo kill e init.

e

EXEMPLOS

matar -9 -1

 Kill all processes you can kill.

Espero que você entenda por que o seu computador fará o logout quando você finalizar todos os processos. Você deixou tudo.

Espero que isto ajude.

mondjunge
fonte
18
+1 para apontar para man. "Ensine um peixe como mane você o alimentará por toda a vida." (Mote pretendido :-))
m000 13/09
7

Você está fornecendo -1como o ID do processo: na killpágina de manual:

 A  PID of -1 is special; it indicates all processes except the
 kill process itself and init.
Tom Regner
fonte