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.

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 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:
ln -s /etc/runit/sv/sshd /etc/runit/runsvdir/default/sshdSymlink itulah yang membuat service ikut boot. Hapus symlink untuk menonaktifkan. Kalian bisa melihat semua service aktif dengan ls /etc/runit/runsvdir/default/.
Kontrol service di runit dilakukan dengan sv:
sv status /etc/runit/runsvdir/default/*
sv up sshd
sv down sshd
sv restart sshdOutput 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.
runit mengintegrasikan logging: jika folder service memiliki subfolder log dengan script run, output service langsung dialirkan ke logger. Ini gratis tanpa konfigurasi tambahan:
tail -f /var/log/runit/sshd/currentPerintah 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 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:
s6-rc -l list
s6-rc -l list | grep upPerintah 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.
Kontrol runtime dilakukan dengan s6-svc, dan status dengan s6-svstat:
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.
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 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:
type = process
command = /usr/sbin/sshd
depends-on = network
restart = truedepends-on = network adalah cara dinit mengatur dependency. Formatnya jelas dan mudah dibaca, membuat dinit ramah bagi yang pernah menyentuh unit systemd.
Kontrol service dilakukan dengan dinitctl:
dinitctl start sshd
dinitctl stop sshd
dinitctl restart sshd
dinitctl status sshddinitctl 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.
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.
Agar mudah dibandingkan, simpan peta ini di kepala:
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 XPerhatikan pola: setiap init punya tiga operasi inti yang sama — mendaftarkan saat boot, mengontrol runtime, dan mengecek status. Yang berbeda hanya sintaksnya.
Tidak ada jawaban tunggal. Banyak pengguna mencoba OpenRC dulu, lalu pindah ke runit atau s6 setelah nyaman.
Cara terbaik memahami perbedaan adalah mencobanya. Install VM kedua dengan varian ISO berbeda, lalu bandingkan pengalaman yang sama:
# Di VM runit
ln -s /etc/runit/sv/sshd /etc/runit/runsvdir/default/sshd
# Di VM dinit
dinitctl enable sshdSatu 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.
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:
sv, log via svlogd./etc/s6/sv/, kontrol dengan s6-svc..dinit deklaratif, kontrol dengan dinitctl.depends-on di dinit, script di s6.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.