GNU/Linux >> Znalost Linux >  >> Linux

Linux – Může Ctrl+c odeslat signál Sigint více procesům?

Četl jsem, že když stisknete Ctrl +C a SIGINT signál bude odeslán do skupiny procesů v popředí .

Můžete mi dát příklad, jak mohu mít dva nebo více procesů ve skupině procesů v popředí , protože chci vidět, jestli se všechny procesy ukončí, když stisknu Ctrl +C .

Přijatá odpověď:

Protože všechny nové procesy patří do stejné skupiny procesů, skupiny nadřazeného procesu, proces spouští spoustu procesů (fork ) a poté s příslušným protokolováním a prodlevou zadejte Ctrl +C . Všichni jedí 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
$ 

(Přidejte strace nebo sysdig nebo podobně, abyste viděli zapojená systémová volání nebo signály.)


Linux
  1. Jaký je nejlepší způsob, jak vyslat signál všem členům procesní skupiny?

  2. Jak mohu v Linuxu zjistit, který proces poslal mému procesu signál

  3. Jaká je definice relace v linuxu?

  1. Odeslat procesy na pozadí v Debianu 10 – nejlepší metoda?

  2. Kdy systém odešle SIGTERM procesu?

  3. Může být proces init shell skript v Linuxu?

  1. UNIX / Linux:3 způsoby odesílání signálu do procesů

  2. Základy signálů Linuxu – část I

  3. Kdy je setsid() užitečné nebo proč potřebujeme seskupovat procesy v Linuxu?