GNU/Linux >> Belajar Linux >  >> Linux

Linux – Bisakah Ctrl+c Mengirim Sinyal Tanda Ke Beberapa Proses?

Saya telah membacanya ketika Anda menekan Ctrl +C sebuah SIGINT sinyal akan dikirim ke grup proses latar depan .

Bisakah Anda memberi saya contoh bagaimana saya dapat memiliki dua atau lebih proses di grup proses latar depan , karena saya ingin melihat apakah semua proses akan berhenti jika saya menekan Ctrl +C .

Jawaban yang Diterima:

Karena semua proses baru termasuk dalam grup proses yang sama, yaitu proses induk, mintalah sebuah proses memulai sekelompok proses (fork ), lalu dengan pencatatan yang sesuai dan penundaan, ketik Ctrl +C . Mereka semua makan 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
$ 

(Tambahkan strace atau sysdig atau semacamnya untuk melihat panggilan sistem atau sinyal yang terlibat.)


Linux
  1. Apa cara terbaik untuk mengirim sinyal ke semua anggota grup proses?

  2. Bagaimana saya bisa tahu di Linux proses mana yang mengirim sinyal ke proses saya

  3. Kapan setsid() berguna, atau mengapa kita perlu mengelompokkan proses di Linux?

  1. Kirim Proses ke Latar Belakang di Debian 10 - Metode Terbaik?

  2. Kapan sistem mengirimkan SIGTERM ke suatu proses?

  3. Bisakah proses init menjadi skrip shell di Linux?

  1. UNIX / Linux:3 Cara Mengirim Sinyal ke Proses

  2. Dasar-Dasar Sinyal Linux – Bagian I

  3. Apa definisi sesi di linux?