No man page
, diz:
0 All processes in the current process group are signaled
E eu tentei assim:
$ man kill &
[1] 15247
$
[1]+ Stopped man kill
$ kill 0
$ ps
15247 pts/41 00:00:00 man
Como eu entendi, kill 0
matará todos os processos no processo atual, o que inclui pid15247
. No entanto, não fez nada neste exemplo. Alguém tem idéias sobre como usá-lo?
Respostas:
Não consegui encontrar uma nota de como
kill 0
se comporta na minha página de manual kill (debian).Mas tenho dois comentários:
(1) "Grupo de processos" pode não ser o que você espera. Você pode exibir o PGID (Process Group ID) com
ps -o "%p %P %r %c %a"
:Portanto, o
man
conjunto com a ferramenta de paginação exibida (less
) está no mesmo grupo de processos, mas isso é diferente do do shell (zsh no meu caso).(2) Provavelmente existem dois
kill
comandos diferentes . Um embutidobash
(veja bash (1), Seção "COMANDOS DE CONSTRUÇÃO DE SHELL") e o externo/bin/kill
. Esses dois podem se comportar de maneira diferente! Você pode indicar explicitamente qual você deseja executar digitandobuiltin kill
ou emcommand kill
vez dekill
. O comando externo você também pode executar, especificando o caminho:/bin/kill
.fonte
PPID
é o ID do processo pai , que geralmente é, mas não necessariamente, o ID do grupo de processos. A coluna correta éPGID
, que não aparece naps
saída padrão ; você precisa usar a-o
opção para construir um formato personalizado que o inclua.:-(
)Para interromper todos os seus processos e fazer logoff, digite:
Isso envia o sinal 9, o sinal SIGKILL, para todos os processos com um ID de grupo de processos igual ao ID do grupo de processos de remetentes. Como o shell não pode ignorar o sinal SIGKILL, isso também interrompe o shell de login e o desconecta.
Este é o Manual AIX da IBM, mas talvez o conceito se aplique.
Essa funcionalidade não existe no Linux "kill" (como posso ver); mas é assim que o "kill" se comporta:
Matar 0 não mata o pid 0. Em vez disso, é uma opção no kill matar todos os processos no grupo atual . Com seu comando, você está matando tudo no ID do grupo de processos (GID) do shell que emitiu o comando kill.
fonte