Signals

By Muhammad Aditiya Rakhman


What Are Signals?

Dalam lingkungan Linux, Signal adalah pesan yang dikirim oleh sistem operasi atau proses lain ke proses yang sedang berjalan. Signal digunakan untuk berbagai tujuan, seperti memberi tahu proses untuk menghentikan diri, mengatasi kejadian tertentu, atau melakukan tindakan tertentu pada proses tersebut.

Signal juga digunakan untuk memberi tahu proses tentang peristiwa asinkron. Peristiwa asinkron adalah proses penerimaan sinyal:

  • Tidak mengharapkan peristiwa itu terjadi.

  • Mengharapkan terjadinya peristiwa, tetapi tidak tahu kapan kemungkinan besar peristiwa tersebut akan terjadi.

Sebagai contoh, jika pengguna memutuskan untuk menghentikan program yang sedang berjalan, pengguna dapat mengirimkan Signal ke proses melalui kernel untuk menginterupsi dan membunuh proses tersebut. Ada dua jalur yang digunakan untuk mengirim sinyal ke sebuah proses:

  • Dari kernel ke proses pengguna, sebagai akibat dari pengecualian atau kesalahan pemrograman.

  • Dari proses pengguna (menggunakan system call) ke kernel yang kemudian akan mengirimkannya ke proses pengguna. Proses yang mengirimkan sinyal sebenarnya bisa sama dengan proses yang menerimanya.


Types of Signals


Kill

Karena sebuah proses tidak dapat mengirimkan sinyal secara langsung ke proses lain, maka proses tersebut harus meminta kernel untuk mengirimkan sinyal. Pengguna (termasuk superuser) dapat mengirimkan sinyal ke proses (program) lain dengan menggunakan kill.

$ kill 1234
$ kill -9 1234
$ kill -SIGTERM 1234

Last updated