Beralih ke Runit

Contents
Beralih ke Runit

Runit merupakan sebuah UNIX init scheme dengan service supervision. Pada dasarnya hal ini berarti Runit mampu menyediakan automatic starting sebuah services ketika sistem operasi dijalankan untuk pertamakali, serta automatic monitoring and restarting sebuah service jika terjadi sebuah interupsi.
Systemd vs Runit
Ketika artikel ini diterbitkan, systemd nyaris menguasai semua distro sistem operasi GNU/Linux. Misalnya Fedora, Debian, Ubuntu, dan banyak lagi lainnya sudah beralih dari init system sebelumnya lalu menggunakan systemd. Hal ini terjadi karena systemd menawarkan banyak hal yang terintegrasi, hampir segala hal pada sistem operasi akan di-handle olehnya.
Kontroversi systemd
systemd memang menjadi kontroversi karena beberapa hal. Sebagian orang menganggap bahwa systemd tidak menghormati filosofi Unix. Saya ingat ketika awal sekali mengenal GNU/Linux, bahwa GNU/Linux adalah sistem operasi yang Unix-like dan Unix memiliki filosofi sebagai berikut :
- Tugas sebuah program adalah melakukan satu hal, dan melakukannya dengan baik.
- Sistem yang besar dan kompleks merupakan gabungan dari program-program kecil yang bekerja sama.
- Teks adalah antarmuka yang universal.
- Segala hal di Unix adalah file.
systemd dianggap tidak conform dengan filosofi Unix diatas sehingga banyak yang menolaknya. systemd awalnya dikembangkan oleh Lennart Pottering, seorang developer yang saat artikel ini diterbitkan tengah bekerja untuk Red Hat. Dia sebelumnya juga membuat sebuah program yang tak kalah kontroversial yaitu Avahi dan PulseAudio. Silahkan baca tentang Lennart Pottering di Wikipedia.
Beberapa kritik lain terhadap systemd misalnya karena systemd tidak hanya menjadi init system tapi juga mengambil ali banyak fungsi. Misalnya systemd berusaha mengatur network, cron
, fstab
, syslog
atau rsyslog
, ntp
, dan banyak lainnya. Artinya systemd bukanlah sebuah program yang melakukan satu hal saja, tapi banyak hal. Kemudian, systemd dikritik karena logging file-nya tidak berbasis teks seperti Unix dan GNU/Linux pada umumnya, melainkan binary log file.
Runit Sebagai Alternatif
Berbagai penolakan tentu saja terjadi, tidak sedikit developer yang kemudian melakukan fork lalu mengembangkan distro GNU/Linux yang bebas dari systemd. Misalnya Artix Linux, yang merupakan fork dari project Arch Linux dengan maksud membebaskan pengguna Arch dari cengkeraman systemd. Artix menawarkan beberapa alternatif sebagai pengganti systemd, misalnya OpenRC, S6, dan tentu saja Runit.
|
Pada distro Artix, biasanya direktori sebuah service akan terlihat seperti di atas. Anggaplah /etc/runit/sv
adalah templatedir, dan /etc/runit/sv/foo
adalah direktori konfigurasi service. Maka kelak service yang berjalan akan bernama sebagai foo
juga. Dalam direktori foo
biasanya kita hanya diwajibkan untuk membuat sebuah file executable bernama run
, berisikan baris perintah untuk mengeksekusi program yang akan dijadikan sebagai sebuah service. Namun jika kita membutuhkan logging, kita dapat memanfaatkan svlogd
dengan membuat sebuah direktori bernama log
di dalam /etc/runit/sv/foo
, kemudian buat lagi sebuah file bernama run
di dalam direktori log
tersebut. Isi dari file-file run
tersebut akan kita bahas dibawah.
Beralih ke Runit
Dalam dokumentasi ini kita akan belajar tentang :
- Membuat sebuah runit template untuk untuk konfigurasi monitored service.
- Konfigurasi monitored service untuk pertamakali.
- Mengelola monitored service secara manual.
0. Prerequisites
Pastikan paket dari runit
sudo terpasang pada sistem. Sebagian besar distro GNU/Linux biasanya memiliki paket tersebut pada repository mereka. Misalnya, jika kita menggunakan sebuah distro Arch-based maka kita dapat memasang paket dengan perintah berikut.
|
|
Periksa apakah runit telah terpasang pada sistem, dengan mencari sebuah process bernama runsvdir
dengan perintah.
|
Periksa apakah runit telah terpasang pada sistem, dengan mencari sebuah process bernama runsvdir
dengan perintah.
|
|
Jika runit telah terpasang, harusnya akan keluar output seperti berikut.
|
|