GNU/Linux >> Belajar Linux >  >> Linux

UNIX / Linux:3 Cara Mengirim Sinyal ke Proses

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-^?;

Linux
  1. 30 Latihan Proses Linux Untuk Sysadmin

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

  3. 4 Cara Mengeksekusi Shell Script di UNIX / Linux

  1. Linux – Proses Init:Leluhur Semua Proses?

  2. Proses UNIX / Linux:C fork() Fungsi

  3. Penanganan sinyal UNIX/Linux:SIGEV_THREAD

  1. Dasar-Dasar Sinyal Linux – Bagian I

  2. Mengelola Proses Di Ubuntu Linux

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