Langsung ke konten

Arsip

Signal

6 artikel
Linux 23 Sep 2026 4 min read

PR_SET_PDEATHSIG Mengikat Notifikasi Child ke Terminasi Thread Parent

PR_SET_PDEATHSIG Mengikat Notifikasi Child ke Terminasi Thread Parent PR_SET_PDEATHSIG memungkinkan sebuah process Linux meminta signal ketika thread yang membuatnya berhenti. Mekanismenya memiliki cakupan sempit: ini adalah notifikasi dari kernel yang terikat pada relasi parent, bukan kontrak umum tentang lifetime process dan bukan jaminan bahwa dua process akan berhenti bersamaan. Batas tersebut penting pada supervisor, launcher, dan helper process. Child dapat bereaksi saat pembuatnya hilang tanpa melakukan polling PID, tetapi identitas parent, waktu pemasangan setting, aturan inheritance, dan transisi credential menentukan batas perilakunya.

Linux 22 Sep 2026 5 min read

signalfd Mengubah Signal yang Diblokir Menjadi Event yang Dapat Dibaca

Signal Linux biasanya memotong alur thread melalui delivery asinkron. signalfd() menyediakan boundary berbeda untuk signal terpilih: signal tetap diblokir pada thread yang relevan, lalu instance yang pending dikonsumsi dengan membaca file descriptor. Mekanisme signal tidak berubah menjadi byte stream. Kernel tetap memelihara state signal serta aturan delivery process-directed dan thread-directed. signalfd menambahkan interface file descriptor untuk menerima signal dari set yang dikonfigurasi. Blocking dan mask descriptor adalah state yang terpisah Sebuah signalfd memiliki signal-set mask yang menentukan signal mana yang dapat diterimanya. Mask tersebut tidak memblokir signal pada thread. Pemakaian normal karena itu memasangkan pembuatan descriptor dengan operasi signal mask.

Rekayasa Perangkat Lunak 18 Sep 2026 5 min read

Linux signalfd Mengubah Signal Terpilih Menjadi Read Descriptor

Signal yang masuk ke mask signalfd dapat muncul sebagai state readable pada file descriptor alih-alih menjalankan asynchronous signal handler, selama signal tersebut diblokir dari delivery biasa pada thread yang relevan. Batas interface pun berubah: kedatangan signal dapat ikut dalam event loop berbasis descriptor yang sama dengan socket, pipe, dan objek pollable lain. Mekanisme ini tidak mengganti semantik signal Linux. Pembentukan signal, signal mask pada proses dan thread, state pending, penggabungan standard signal, antrean real-time signal, serta aturan delivery tetap berlaku. signalfd mengubah interface konsumsi untuk signal yang dipilih oleh mask-nya.

Rekayasa Perangkat Lunak 17 Sep 2026 5 min read

signalfd Mengubah Sinyal Pending Menjadi Record yang Dapat Dibaca

Sinyal yang masuk ke mask signalfd dapat membuat file descriptor menjadi readable alih-alih menjalankan handler asinkron, selama sinyal tersebut diblokir dari delivery biasa. read() yang berhasil kemudian mengonsumsi status sinyal pending dan mengembalikan satu atau beberapa record signalfd_siginfo. Perubahan ini mengganti antarmuka penerimaan untuk sinyal terpilih, tetapi tidak mengganti semantik signal Linux. Signal mask, delivery yang diarahkan ke process atau thread, penggabungan standard signal, serta status khusus SIGKILL dan SIGSTOP tetap menentukan batas perilaku descriptor.

Rekayasa Perangkat Lunak 17 Sep 2026 5 min read

signalfd Mengonsumsi Signal yang Diblokir melalui Read Descriptor

Sebuah signalfd di Linux menjadi readable ketika signal yang dipilih oleh mask miliknya berstatus pending bagi konteks pembaca. read() yang berhasil tidak sekadar mengamati status tersebut: operasi itu mengonsumsi kemunculan signal yang dikembalikan dan menghapusnya dari status pending. Perilaku ini memberi signal jalur konsumsi berbasis descriptor. Mekanisme tersebut tidak mengubah subsistem signal menjadi byte stream, dan tidak menggantikan signal mask yang mengendalikan delivery biasa. Mask descriptor memilih signal pending yang memenuhi syarat signalfd() mengaitkan sebuah signal set dengan file descriptor. Ketika argumen pertama bernilai -1, Linux membuat objek signalfd baru. Jika descriptor signalfd yang sudah ada diberikan, mask pada objek tersebut diganti.

Rekayasa Perangkat Lunak 17 Sep 2026 6 min read

Linux signalfd Memindahkan Delivery Signal ke Readiness File Descriptor

Linux signalfd Memindahkan Delivery Signal ke Readiness File Descriptor signalfd() mengubah antarmuka konsumsi untuk signal Linux tertentu. Alih-alih mengatur agar asynchronous signal handler berjalan saat signal tersebut dikirim, sebuah proses dapat memblokir signal lalu menerima informasinya dengan membaca file descriptor. Descriptor itu dapat dipantau melalui poll(), epoll, dan mekanisme readiness terkait, sehingga penanganan signal dapat memakai batas dispatch yang sama dengan socket, pipe, timer, dan objek pollable lain. Mekanisme ini tidak menggantikan semantik signal Linux. Pembentukan signal, delivery yang diarahkan ke proses atau thread, mask, pending state, serta aturan antrean standard signal dan real-time signal tetap berlaku. signalfd mengubah antarmuka untuk mengonsumsi signal yang berstatus pending dan termasuk dalam mask miliknya.