Isso seria muito útil para matar, pois matar um ID de trabalho em vez de um ID de processo também parece matar todos os processos filhos.
Você pode fazer isso de uma maneira diferente.
Quando ele imprime o pid, você pode matá-lo e todos os seus filhos matando seu grupo de processos .
Você faz isso negando o pid, por exemplo
$ cat &
[1] 21273
$ kill -- -21273
Você precisa escrever --
ou então -pid
é interpretado como um sinal (por exemplo, como kill -9
).
Exemplo:
$ man ls &
[1] 22267
$ ps j | head -1; ps j | grep 22267
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
18968 22267 22267 18968 pts/2 22327 T 500 0:00 man ls
22267 22281 22267 18968 pts/2 22327 T 500 0:00 /bin/sh /usr/bin/nroff -mandoc -Tutf8
22267 22282 22267 18968 pts/2 22327 T 500 0:00 less
22281 22286 22267 18968 pts/2 22327 T 500 0:00 groff -mtty-char -Tutf8 -mandoc
22286 22287 22267 18968 pts/2 22327 T 500 0:00 troff -mtty-char -mandoc -Tutf8
22286 22288 22267 18968 pts/2 22327 T 500 0:00 grotty
$ kill -- -22267
[1]+ Terminated man ls
$ ps j | grep 22267
$