MODUL 4 SIGNALS (ADINUSA)

Modul 4 menjelaskan mengenai apa itu sinyal dan bagaimana kerjanya, juga mendiskusikan berbagai jenis signal yang tersedia dalam sistem linux dan cara menggunakan kill, killall, dan pkill untuk mengirim sinyal melalui command line.

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:

  1. Dari kernel ke proses pengguna, misalnya akibat pengecualian atau kesalahan pemrograman.
  2. 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

Perintah ini akan menampilkan daftar signal yang dapat dikirim ke suatu proses dalam sistem Linux. 


Setiap signal memiliki arti tersendiri, menunjukkan kejadian yang menyebabkan sinyal dikirim ke suatu proses.

Contoh signals penting:

SIGKILL (9)           : Memaksa penghentian proses.
SIGSTOP (19)         : Menghentikan proses sementara.
SIGTERM (15)       : Meminta proses berhenti dengan aman.
SIGSEGV (11)        : Terjadi kesalahan akses memori ilegal.
SIGINT (2)              : Menghentikan proses dengan menekan CTRL + C.

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):
            kill 1234
  • Menghentikan proses secara paksa dengan SIGKILL (#9):
            kill -9 1234
  • Menggunakan nama signal secara eksplisit:
            kill -SIGTERM 1234

Untuk melanjutkan ke MODUL 5, anda harus melewati task Lab 4.1 pada MODUL 4, apabila anda kesulitan berikut tutorialnya dengan cara klik disini

Komentar

Postingan populer dari blog ini

Cara Instalasi Debian 12 di Virtualbox

Cara Instalasi dan Konfigurasi Web Server pada Debian 10 di VirtualBox

Cara Instalasi Debian 12 Di Virtualbox Dan Cara Untuk Setting IP Address-Nya