He leído que cuando presionas Ctrl +C un SIGINT
la señal se enviará al grupo de procesos en primer plano .
¿Puede darme un ejemplo de cómo puedo tener dos o más procesos en el grupo de procesos en primer plano? , porque quiero ver si todos los procesos terminarán si presiono Ctrl +C .
Respuesta aceptada:
Dado que todos los procesos nuevos pertenecen al mismo grupo de procesos, el del proceso principal, haga que un proceso inicie un montón de procesos (fork
), y luego con el registro adecuado y un retraso, escriba Ctrl +C . Todos comen un SIGINT
.
$ perl -E 'fork for 1..2;say "ima $$"; $SIG{INT}=sub{die "woe $$\n"}; sleep 999'
ima 80920
ima 80922
ima 80921
ima 80923
^Cwoe 80920
woe 80922
woe 80921
woe 80923
$
(Añadir strace
o sysdig
o similar para ver las llamadas al sistema o las señales involucradas).