Pertanyaan :Bagaimana cara mengirim sinyal ke proses lain? Bisakah Anda menjelaskan kepada saya semua opsi yang tersedia untuk mengirim sinyal ke proses di lingkungan UNIX / Linux?
Jawaban :Anda bisa mengirim berbagai sinyal ke proses menggunakan salah satu metode yang dijelaskan dalam artikel ini.
1. Kirim Sinyal ke Proses Menggunakan Kill
Gunakan perintah kill untuk mengirim sinyal ke suatu proses. Misalnya, jika Anda ingin mengirim sinyal USR1 ke proses “a.out”, lakukan hal berikut.
$ ps -C a.out PID TTY TIME CMD 3699 pts/1 00:00:00 a.out $ kill -s USR1 3699
Catatan :Lihat 4 Cara untuk Membunuh Proses – kill, killall, pkill, xkill.
2. Kirim Sinyal ke Proses dari Proses Lain
Anda dapat menggunakan sistem mematikan panggilan sistem UNIX (dari program C) untuk mengirim sinyal dari satu proses ke proses lainnya. Cuplikan kode C berikut menunjukkan cara menggunakan perintah kill.
Kill system call membutuhkan dua argumen:1) PID (proses id) dari proses yang perlu diberi sinyal 2) sinyal yang perlu dikirim ke proses. Perintah Kill mengembalikan 0 saat berhasil.
int send_signal (int pid) { int ret; ret = kill(pid,SIGHUP); printf("ret : %d",ret); }
3. Kirim Sinyal ke Proses dari Keyboard
Ketika sebuah proses sedang berjalan di terminal, Anda dapat mengirim sinyal ke proses tersebut dari keyboard dengan menggunakan beberapa kombinasi tombol tertentu. Berikut adalah beberapa contohnya.
- SIGINT (Ctrl + C) – Anda sudah mengetahuinya. Menekan Ctrl + C membunuh proses latar depan yang sedang berjalan. Ini mengirimkan SIGINT ke proses untuk mematikannya.
- Anda dapat mengirim sinyal SIGQUIT ke suatu proses dengan menekan Ctrl + \ atau Ctrl + Y
Anda dapat melihat pemetaan kunci yang mengirimkan sinyal tertentu ke suatu proses menggunakan perintah “stty -a” seperti yang ditunjukkan di bawah ini.
$ stty -a | grep intr intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;