Belajar Artix Linux - Init Alternatif: runit, s6 & dinit
Episode 6 of 23

Belajar Artix Linux - Init Alternatif: runit, s6 & dinit

Selain OpenRC, Artix mendukung runit, s6, dan dinit — tiga init dengan filosofi berbeda. Episode ini membandingkan cara kerja dan perintah masing-masing: sv untuk runit, s6-svc untuk s6, dan dinitctl untuk dinit, plus kapan memilih tiap init.

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

Pendahuluan

OpenRC bukan satu-satunya pilihan. Episode 6 mengajak kalian mengenal tiga init alternatif yang didukung penuh Artix: runit, s6, dan dinit. Ketiganya lahir dari filosofi yang berbeda dari OpenRC — lebih kecil, lebih berorientasi pada process supervision, dan dengan model konfigurasi masing-masing.

Tujuan episode ini bukan menentukan pemenang, melainkan membangun kemampuan baca: memahami perintah, struktur direktori, dan cara berpikir setiap init. Dengan begitu, kalian bisa mengikuti semua contoh di series ini apa pun varian yang dipilih, dan memutuskan init terbaik untuk kebutuhan kalian di episode 22.

runit: Sederhana dengan Log Otomatis

Konsep: Service Directory dan runsvdir

runit memakai prinsip "service is a directory". Setiap service punya folder sendiri berisi script run, dan supervisor runsvdir menjalankan semua service yang terdaftar. Di Artix, direktori utama ada di /etc/runit/runsvdir/.

Untuk mengaktifkan service, buat symlink dari service directory ke runsvdir default:

Aktifkan service di runit
ln -s /etc/runit/sv/sshd /etc/runit/runsvdir/default/sshd

Symlink itulah yang membuat service ikut boot. Hapus symlink untuk menonaktifkan. Kalian bisa melihat semua service aktif dengan ls /etc/runit/runsvdir/default/.

Perintah sv

Kontrol service di runit dilakukan dengan sv:

Kelola service dengan sv
sv status /etc/runit/runsvdir/default/*
sv up sshd
sv down sshd
sv restart sshd

Output sv status menampilkan status tiap service, biasanya run dengan PID atau down. Karena runit menjaga service tetap hidup, jika proses crash ia akan di-restart otomatis oleh supervisor.

Log Per-Service

runit mengintegrasikan logging: jika folder service memiliki subfolder log dengan script run, output service langsung dialirkan ke logger. Ini gratis tanpa konfigurasi tambahan:

Melihat log service runit
tail -f /var/log/runit/sshd/current

Perintah tail -f /var/log/runit/sshd/current mengikuti log service yang ter-rotate otomatis oleh svlogd. Kehadiran log bawaan adalah salah satu keunggulan utama runit.

s6: Supervision Tree yang Modern

Konsep: Service Database dan s6-svscan

s6 mirip runit secara filosofi, tetapi dengan tooling lebih lengkap. Service dikelola lewat service database di /etc/s6/sv/, dan s6-svscan menjadi supervisor utama. s6 mendukung konsep "scan directory" dan service siap-pakai yang dinyalakan dengan satu perintah.

Daftar service aktif dilihat dengan s6-rc:

Daftar service s6
s6-rc -l list
s6-rc -l list | grep up

Perintah s6-rc -l list menampilkan semua service yang terdefinisi beserta statusnya. Tidak seperti runit yang berbasis symlink, s6 memakai database yang dibangun dari direktori service.

Perintah s6-svc

Kontrol runtime dilakukan dengan s6-svc, dan status dengan s6-svstat:

Kelola service dengan s6-svc
s6-svc -u /run/service/sshd
s6-svc -d /run/service/sshd
s6-svc -r /run/service/sshd
s6-svstat /run/service/sshd

-u untuk up, -d untuk down, dan -r untuk restart. Output s6-svstat menampilkan PID, durasi uptime, dan jumlah restart. s6 sangat transparan soal status karena setiap service diawasi secara kontinu.

Keunggulan: Supervision Terhubung

s6 mendukung s6-svc -s untuk signal dan koneksi antar-supervisor di mesin berbeda. Inilah yang membuat s6 dipakai di ekosistem seperti Alpine dan Void sebagai inisiatif modern. Untuk penggunaan server yang serius, kemampuan ini bernilai.

dinit: Kecil dan Dependency-Clear

Konsep: File Service .dinit

dinit mengambil pendekatan berbeda: service didefinisikan sebagai file teks berakhiran .dinit di /etc/dinit.d/. File ini ditulis dalam format deklaratif yang mirip service systemd, tapi jauh lebih ringan:

Contoh /etc/dinit.d/sshd
type = process
command = /usr/sbin/sshd
depends-on = network
restart = true

depends-on = network adalah cara dinit mengatur dependency. Formatnya jelas dan mudah dibaca, membuat dinit ramah bagi yang pernah menyentuh unit systemd.

Perintah dinitctl

Kontrol service dilakukan dengan dinitctl:

Kelola service dengan dinitctl
dinitctl start sshd
dinitctl stop sshd
dinitctl restart sshd
dinitctl status sshd

dinitctl status menampilkan status dan dependency aktif. Karena dinit melacak dependency secara eksplisit, service bisa di-start bersamaan secara paralel ketika dependency-nya sudah siap — ini salah satu kekuatan besar dinit dibanding init lain.

Status Project

dinit adalah init termuda di keluarga Artix, dan terus dimatangkan. Karena formatnya deklaratif dan ringan, dinit menarik bagi yang menginginkan init modern tanpa berat systemd. Perkembangannya diulas lagi di episode 21.

Membandingkan Keempat Init

Tabel Perbandingan Singkat

Agar mudah dibandingkan, simpan peta ini di kepala:

Perbandingan perintah service
Init    Aktifkan saat boot      Kontrol runtime      Status
OpenRC  rc-update add X default rc-service X start  rc-status
runit   ln -s ... runsvdir      sv up X             sv status X
s6      s6-rc -u change X       s6-svc -u X         s6-svstat X
dinit   dinitctl enable X       dinitctl start X    dinitctl status X

Perhatikan pola: setiap init punya tiga operasi inti yang sama — mendaftarkan saat boot, mengontrol runtime, dan mengecek status. Yang berbeda hanya sintaksnya.

Kapan Memilih yang Mana

  • OpenRC: paling banyak dokumentasi, familier, cocok untuk yang baru pindah dari SysV.
  • runit: sangat sederhana, log otomatis, hemat resource, ideal untuk server ringan.
  • s6: tooling modern, supervision kuat, bagus untuk eksperimen dan lingkungan kompleks.
  • dinit: format deklaratif, start paralel, cocok untuk yang suka sistem minimal.

Tidak ada jawaban tunggal. Banyak pengguna mencoba OpenRC dulu, lalu pindah ke runit atau s6 setelah nyaman.

Praktek: Mencoba Init Lain

Eksperimen Aman dengan VM

Cara terbaik memahami perbedaan adalah mencobanya. Install VM kedua dengan varian ISO berbeda, lalu bandingkan pengalaman yang sama:

Membandingkan init di dua VM
# Di VM runit
ln -s /etc/runit/sv/sshd /etc/runit/runsvdir/default/sshd
# Di VM dinit
dinitctl enable sshd

Satu service yang sama, dua cara aktivasi yang berbeda. Setelah mencoba dua atau tiga init, kalian akan lebih percaya diri membaca dokumentasi dari komunitas yang memakai init berbeda-beda.

Penutup

Episode 6 memperkenalkan tiga init alternatif: runit dengan service directory dan log otomatis, s6 dengan supervision tree modern dan tooling lengkap, serta dinit dengan file .dinit deklaratif dan start paralel. Semua punya perintah dan struktur konfigurasinya sendiri.

Inti yang harus dibawa pulang:

  • runit: service = direktori, kontrol dengan sv, log via svlogd.
  • s6: service database di /etc/s6/sv/, kontrol dengan s6-svc.
  • dinit: file .dinit deklaratif, kontrol dengan dinitctl.
  • Dependency: symlink di runit, depends-on di dinit, script di s6.
  • OpenRC paling familier; runit/s6/dinit lebih kecil dan modern.
  • Coba setiap init di VM terpisah sebelum memutuskan yang dipakai.

Di episode 7 selanjutnya kita akan membahas user, group, network, dan boot — manajemen user dan sudo, NetworkManager dan nmcli, dhcpcd, konfigurasi static IP, serta proses boot tanpa systemd dari init sampai runlevel.

Belajar Artix Linux - Init Alternatif: runit, s6 & dinit | Belajar Artix Linux