En el man page
, dice:
0 All processes in the current process group are signaled
Y lo intenté así:
$ man kill &
[1] 15247
$
[1]+ Stopped man kill
$ kill 0
$ ps
15247 pts/41 00:00:00 man
Como entendí, kill 0
matará todos los procesos en el proceso actual, que incluye pid15247
. Sin embargo, no hizo nada en este ejemplo. ¿Alguien tiene ideas sobre cómo usarlo?
Respuestas:
No pude encontrar una nota de cómo se
kill 0
comporta en mi página de kill man (debian).Pero tengo dos comentarios:
(1) "Grupo de procesos" podría no ser lo que espera. Puede mostrar la ID del grupo de procesos (PGID) con
ps -o "%p %P %r %c %a"
:Entonces,
man
junto con la herramienta de paginación de visualización (less
) está en el mismo grupo de proceso, pero eso es diferente de la del shell (zsh en mi caso).(2) Probablemente hay dos
kill
comandos diferentes . Uno integrado enbash
(ver bash (1), Sección "SHELL BUILTIN COMMANDS") y el externo/bin/kill
. ¡Estos dos pueden comportarse de manera diferente! Puede indicar explícitamente cuál desea ejecutar escribiendobuiltin kill
o encommand kill
lugar dekill
. El comando externo también puede ejecutar mediante la especificación de la ruta:/bin/kill
.fuente
PPID
es la ID del proceso principal , que a menudo es, pero no necesariamente, la ID del grupo de procesos. La columna correcta esPGID
, que no aparece en laps
salida predeterminada ; necesita usar la-o
opción para construir un formato personalizado que lo incluya.:-(
)Para detener todos sus procesos y cerrar sesión, ingrese:
Esto envía la señal 9, la señal SIGKILL, a todos los procesos que tienen una ID de grupo de proceso igual a la ID de grupo de proceso de los remitentes. Debido a que el shell no puede ignorar la señal SIGKILL, esto también detiene el shell de inicio de sesión y cierra la sesión
Este es el Manual de AIX de IBM, pero quizás se aplica el concepto.
Esta funcionalidad no existe en Linux "kill" (como puedo ver); pero así es como se comporta "matar":
Matar 0 no es matar al pid 0. En cambio, es una opción en kill para matar todos los procesos en el grupo actual . Con su comando, está eliminando todo en el ID de grupo de proceso (GID) del shell que emitió el comando kill.
fuente