MODUL 4 SIGNALS (ADINUSA)
What Are Signals?
Signal adalah salah satu metode tertua dalam Inter-Process Communication (IPC) yang digunakan untuk memberi tahu proses tentang kejadian asynchronous (atau pengecualian).
Dalam konteks asynchronous, proses penerima signal mungkin:
- Tidak mengharapkan kejadian tersebut terjadi.
- Mengharapkan kejadian tersebut tetapi tidak tahu kapan tepatnya akan terjadi.
Sebagai contoh, jika pengguna memutuskan untuk menghentikan program yang sedang berjalan, kernel dapat mengirimkan signal ke proses tersebut untuk mengganggu dan menghentikannya.
Terdapat dua jalur utama pengiriman signal ke suatu proses:
- Dari kernel ke proses pengguna, misalnya akibat pengecualian atau kesalahan pemrograman.
- Dari proses pengguna ke kernel, yang kemudian mengirimkan signal ke proses pengguna lainnya.
Signal hanya dapat dikirim antara proses yang dimiliki oleh pengguna yang sama atau dari proses yang dimiliki oleh superuser ke proses lainnya.
Saat suatu proses menerima signal, tindakannya tergantung pada cara program tersebut dikodekan. Beberapa signal seperti SIGKILL (#9) dan SIGSTOP (#19) tidak dapat ditangani oleh program dan akan selalu menghentikan proses secara langsung.
Types of Signals
Terdapat berbagai jenis signal di sistem Linux, dan setiap signal yang dikirim oleh kernel menunjukkan jenis kejadian (atau pengecualian) yang terjadi. Secara umum, signal digunakan untuk menangani dua hal utama:
- Pengecualian yang terdeteksi oleh perangkat keras (misalnya kesalahan referensi memori).
- Pengecualian yang dihasilkan oleh lingkungan (misalnya proses mati sebelum waktunya akibat terminal pengguna ditutup).
Untuk melihat daftar signal yang tersedia di Linux beserta nomornya, pengguna dapat menjalankan perintah berikut:
kill -l
Setiap signal memiliki arti tersendiri, menunjukkan kejadian yang menyebabkan sinyal dikirim ke suatu proses.
Kill
Karena suatu proses tidak dapat mengirim signal langsung ke proses lain, maka ia harus meminta kernel untuk mengirimkan signal tersebut. Pengguna (termasuk superuser) dapat mengirim signal ke proses lain menggunakan perintah kill.
Kill bukanlah nama yang sepenuhnya akurat, karena perintah ini sebenarnya digunakan untuk mengirim signal, bukan hanya untuk menghentikan proses.
Secara default, signal yang dikirim oleh perintah kill adalah SIGTERM (#15). Signal ini dapat ditangani atau diabaikan oleh proses penerima agar dapat melakukan cleanup sebelum dihentikan. Jika signal ini diabaikan, pengguna dapat mengirim SIGKILL (#9), yang tidak dapat diabaikan dan akan langsung menghentikan proses.
Contoh Penggunaan kill
- Menghentikan proses dengan SIGTERM (#15):
- Menghentikan proses secara paksa dengan SIGKILL (#9):
- Menggunakan nama signal secara eksplisit:



Komentar
Posting Komentar