L'ho letto quando premi Ctrl +C un SIGINT
il segnale verrà inviato al gruppo di processi in primo piano .
Puoi farmi un esempio di come posso avere due o più processi nel gruppo di processi in primo piano , perché voglio vedere se tutti i processi termineranno se premo Ctrl +C .
Risposta accettata:
Poiché i nuovi processi appartengono tutti allo stesso gruppo di processi, quello del processo padre, fai in modo che un processo avvii un gruppo di processi (fork
), quindi con la registrazione appropriata e un ritardo, digita Ctrl +C . Mangiano tutti 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
$
(Aggiungi strace
o sysdig
o simili per vedere le chiamate di sistema oi segnali coinvolti.)