GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:Ctrl+c può inviare il segnale Sigint a più processi?

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.)


Linux
  1. UNIX / Linux:3 modi per inviare segnali ai processi

  2. Nozioni di base sui segnali di Linux – Parte I

  3. Quando è utile setsid() o perché abbiamo bisogno di raggruppare i processi in Linux?

  4. Qual è la definizione di una sessione in Linux?

  5. Come posso impostare l'affinità del processore di un processo su Linux?

Come uccidere i processi Zombie in Linux

Come inviare processi in background in Linux

Monitoraggio dei processi su Linux

Comandi per la gestione dei processi in Linux

Come inviare processi in background su Linux

Cos'è un processo interrotto in Linux?