Belajar Devuan GNU/Linux - Init Alternatif: OpenRC & runit
Episode 6 of 23

Belajar Devuan GNU/Linux - Init Alternatif: OpenRC & runit

sysvinit bukan satu-satunya pilihan Devuan. Episode ini membahas OpenRC dengan rc-service dan rc-update, lalu runit dengan sv dan runsvdir. Kalian juga belajar kapan memilih sysvinit, OpenRC, atau runit untuk kebutuhan yang berbeda.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Filosofi init freedom Devuan berarti kalian tidak terpaku pada satu init saja. Episode 6 membuka dua alternatif sysvinit: OpenRC yang menambahkan dependency tracking dan boot paralel, serta runit yang menekankan per-service supervision. Kalian akan belajar mengelola service di keduanya dan kapan harus memilih masing-masing.

Mengapa perlu tahu lebih dari satu? Karena setiap init punya kekuatan berbeda. OpenRC bagus untuk sistem yang menginginkan keteraturan dependency ala systemd tanpa sistemnya. runit unggul untuk daemon yang harus selalu hidup dan restart otomatis. Memahami ketiganya membuat kalian mampu memilih sesuai kebutuhan, bukan hanya mengikuti default.

OpenRC: Init dengan Dependency

Service dan Runlevel ala OpenRC

OpenRC tetap memakai runlevel, tetapi menambah konsep dependency antar service: OpenRC memastikan sebuah service hanya dimulai setelah service yang dibutuhkannya aktif. Konfigurasi tambahan service bisa diletakkan di /etc/conf.d/ — dipisahkan dari script utama agar pembaruan paket tidak menimpa pengaturan lokal.

Periksa service yang terdaftar:

Daftar service OpenRC
rc-service --list
rc-status

Keluaran rc-service --list menampilkan semua service yang dikenal OpenRC. rc-status menampilkan status per runlevel, lengkap dengan urutan boot.

Mengelola Service dengan rc-update

Menambah service ke runlevel default:

Aktifkan dan kelola service
sudo rc-update add sshd default
sudo rc-service sshd restart
sudo rc-service sshd status

rc-update add sshd default mendaftarkan sshd ke runlevel default sehingga ikut boot. Untuk menghapusnya: sudo rc-update del sshd. Perhatikan bahwa nama service OpenRC seperti sshd mungkin berbeda dengan nama script sysvinit ssh di Devuan.

File Konfigurasi di /etc/conf.d/

Pengaturan variabel seperti opsi daemon diletakkan di /etc/conf.d/:

Contoh konfigurasi service OpenRC
cat /etc/conf.d/sshd
echo 'sshd_opts="-D"' | sudo tee -a /etc/conf.d/sshd

Setelah mengubah file konfigurasi, restart service agar variabel baru terbaca.

runit: Service yang Selalu Awasi

Konsep runsvdir dan /etc/sv/

runit mengelola service lewat runsvdir — proses yang mengawasi direktori berisi service. Setiap service adalah direktori berisi script run yang mendefinisikan cara menjalankan daemon. Jika proses mati, runsvdir otomatis memulai ulang.

Struktur standar runit:

Layout runit
/etc/sv/sshd/
  run          - script untuk menjalankan daemon
  log/         - (opsional) pipeline log
/var/service/  - symlink ke service yang aktif

Service aktif disimbolkan dari /etc/sv/ ke /var/service/.

Mengelola Service dengan sv

Perintah sv mengontrol setiap service:

Aktifkan dan kelola service runit
sudo ln -s /etc/sv/sshd /var/service/
sudo sv start sshd
sudo sv status sshd
sudo sv restart sshd

sv start sshd memulai service jika belum berjalan. sv status menampilkan PID dan lama berjalan. Karena runsvdir mengawasi, service yang mati akan dihidupkan kembali secara otomatis — inilah keunggulan utama runit untuk daemon kritikal.

Membuat Service runit Sederhana

Script run adalah inti dari service runit:

Script run untuk runit
mkdir -p /etc/sv/myapp
cat > /etc/sv/myapp/run <<'EOF'
#!/bin/sh
exec /usr/local/bin/myapp
EOF
chmod +x /etc/sv/myapp/run
ln -s /etc/sv/myapp /var/service/

Ganti /usr/local/bin/myapp dengan perintah daemon kalian. Setelah symlink dibuat, runsvdir langsung memulai service dan terus mengawasinya.

Memilih Init yang Tepat

Panduan Keputusan

Tidak ada pilihan yang salah secara mutlak — semua tergantung kebutuhan:

  • sysvinit — default Devuan, paling sederhana dan transparan; cocok untuk server minimal dan pembelajaran.
  • OpenRC — untuk sistem yang butuh dependency tracking dan boot paralel tanpa systemd.
  • runit — untuk daemon yang wajib selalu hidup dengan restart otomatis.

Ingat bahwa pilihan init dilakukan saat instalasi atau lewat proses migrasi. Mengganti init di tengah jalan memerlukan langkah ekstra yang akan kita bahas di episode 18.

Penutup

Episode 6 membuka dua init alternatif Devuan: OpenRC dengan rc-service dan rc-update serta dependency tracking, dan runit dengan sv, /etc/sv/, dan /var/service/ untuk per-service supervision. Kalian juga belajar kapan memilih sysvinit, OpenRC, atau runit.

Inti yang harus dibawa pulang:

  • OpenRC memakai runlevel plus dependency tracking antar service.
  • rc-service mengelola satu service; rc-update mengatur auto-start.
  • Konfigurasi lokal OpenRC berada di /etc/conf.d/.
  • runit mengawasi service lewat runsvdir; service diwakili direktori dengan script run.
  • sv mengontrol service; symlink di /var/service/ mengaktifkannya.
  • sysvinit untuk kesederhanaan, OpenRC untuk dependency, runit untuk auto-restart.

Di episode 7 selanjutnya kita akan membahas user, group, network, dan boot — membuat user dengan adduser, kelompok sudo dan wheel, konfigurasi network lewat ifupdown dan /etc/network/interfaces, serta proses boot dari GRUB, kernel, init, sampai fstab.