Belajar DragonFlyBSD - System Services & rc System
Episode 6 of 23

Belajar DragonFlyBSD - System Services & rc System

Episode ini membedah sistem layanan DragonFlyBSD: peran /etc/rc.conf, /etc/defaults/rc.conf, skrip di /etc/rc.d/, perintah service, dan rcorder untuk menentukan urutan boot, termasuk cara mengaktifkan dan menonaktifkan layanan lewat /etc/rc.conf.local.

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

Pendahuluan

Di episode 5 sebelumnya kalian sudah mengelola identitas: user, group, dan privilege. Tapi untuk apa semua itu kalau tidak ada yang berjalan? Episode ini menjawab pertanyaan yang paling sering dihadapi administrator: bagaimana sistem tahu layanan apa yang harus dijalankan saat boot? Jawabannya ada di sistem rc — warisan Unix yang diadaptasi BSD dengan sangat rapi.

Sistem rc bisa dibayangkan sebagai bandara yang punya daftar penerbangan terperinci. Ada jadwal resmi (/etc/rc.conf), ada prosedur standar (/etc/defaults/rc.conf), ada kru yang menjalankan tugas (/etc/rc.d/), dan ada pengatur lalu lintas yang memastikan pesawat lepas landas dalam urutan benar (rcorder). Kalian akan menjadi pengatur lalu lintas itu.

Anatomi rc System

/etc/defaults/rc.conf: Jadwal Resmi

/etc/defaults/rc.conf adalah dokumen yang berisi nilai default untuk semua variable konfigurasi boot. Ia diisi oleh sistem dan — penting — jangan pernah diedit langsung. Setiap perubahan akan tertimpa saat update base system. Fungsinya adalah referensi: dari file inilah sistem tahu default yang harus dipakai jika tidak ada override.

Buka file ini untuk belajar:

Melihat nilai default rc.conf
less /etc/defaults/rc.conf

Di sana kalian akan menemukan variable seperti rc_conf_files, hostname, ifconfig_default, dan daftar layanan default.

/etc/rc.conf: File Konfigurasi Aktif

/etc/rc.conf adalah tempat kalian menulis override. Sistem membaca nilai default lalu menimpanya dengan apa pun yang ada di sini. Inilah file yang kalian edit sepanjang karier administrasi. Contoh isi yang realistis:

Mengatur hostname dan network di /etc/rc.conf
hostname="server-01.internal"
ifconfig_em0="DHCP"
sshd_enable="YES"
ntpd_enable="YES"

/etc/rc.conf.local: Konfigurasi Lokal

Saat kalian mengelola banyak server dengan konfigurasi bersama (misalnya via konfigurasi terpusat), /etc/rc.conf mungkin diisi oleh tool manajemen — dan override lokal per-mesin sebaiknya dipisahkan. Di situlah /etc/rc.conf.local berperan: file ini dibaca setelah rc.conf dan menjadi lapisan terakhir. Kebiasaan ini menjaga perubahan spesifik mesin agar tidak tertimpa saat konfigurasi bersama di-render ulang.

/etc/rc.d/: Skrip Layanan

Setiap layanan punya skrip di /etc/rc.d/. Skrip ini memahami kata kerja standar seperti start, stop, restart, status, dan rcvar. Ketika kalian menetapkan sshd_enable="YES", sistem rc tahu skrip mana yang harus dijalankan di boot — sshd — berkat konvensi penamaan. Lihat daftarnya:

Daftar skrip layanan
ls /etc/rc.d/

rcorder: Pengatur Urutan Boot

Tidak semua layanan bisa start dalam urutan sembarang. Layanan yang butuh network harus menunggu network siap; layanan yang bergantung pada database harus menunggu database. rcorder menyelesaikan masalah ini dengan membaca deklarasi dependensi dari setiap skrip:

Menampilkan urutan boot yang direncanakan
rcorder /etc/rc.d/* | head -20

Setiap skrip mendeklarasikan REQUIRE, PROVIDE, dan BEFORE — dan rcorder menyusun urutan total yang valid dari deklarasi tersebut. Inilah alasan sistem boot berjalan mulus tanpa konfigurasi manual yang rumit.

Mengelola Layanan

Perintah service

Cara termudah mengendalikan layanan adalah perintah service:

Mengontrol layanan sshd
service sshd status
service sshd start
service sshd restart
service sshd stop

service adalah pembungkus yang memanggil skrip di /etc/rc.d/ dengan kata kerja yang sesuai. Seluruh kata kerja standar tersedia: start, stop, restart, status, rcvar, dan enable/disable pada versi terbaru.

Mengaktifkan Layanan di Boot

Menjalankan layanan sekali bukan berarti ia ikut boot. Untuk mengaktifkannya secara permanen, tambahkan variable _enable di rc.conf:

Aktifkan sshd dan ntpd di boot
echo 'sshd_enable="YES"' >> /etc/rc.conf.local
echo 'ntpd_enable="YES"' >> /etc/rc.conf.local

Setelah itu, layanan akan dijalankan otomatis oleh sistem rc di setiap boot. Untuk memeriksa variable yang berlaku bagi sebuah layanan, gunakan service <nama> rcvar:

Melihat variable rc yang mempengaruhi sshd
service sshd rcvar

Info

Bedakan service <nama> enable (yang menulis variable _enable ke rc.conf) dengan sekadar start. start hanya menjalankan layanan sekarang; enable membuatnya otomatis di boot. Di production, hampir selalu inginkan kombinasi keduanya.

Menonaktifkan Layanan

Untuk menonaktifkan layanan di boot, set variable-nya menjadi "NO":

Nonaktifkan layanan di boot
echo 'dhcpd_enable="NO"' >> /etc/rc.conf.local

Layanan yang di-nonaktifkan tidak akan ikut boot, tapi proses yang sedang berjalan tetap hidup sampai di-stop manual. Untuk mematikan layanan yang sudah berjalan dan mencegahnya boot ulang, lakukan keduanya.

Penutup

Di episode 6 ini kalian telah memahami sistem rc DragonFlyBSD secara menyeluruh: peran /etc/rc.conf sebagai konfigurasi aktif, /etc/defaults/rc.conf sebagai sumber default, /etc/rc.d/ sebagai kumpulan skrip layanan, perintah service untuk kontrol, serta rcorder yang menyusun urutan boot berdasarkan dependensi. Kalian juga belajar mengaktifkan dan menonaktifkan layanan lewat /etc/rc.conf.local.

Inti yang harus dibawa pulang:

  • Edit /etc/rc.conf (dan /etc/rc.conf.local) untuk override; jangan sentuh /etc/defaults/rc.conf.
  • service sshd restart mengendalikan layanan; service <nama> rcvar menampilkan variable yang memengaruhinya.
  • Set sshd_enable="YES" untuk membuat layanan otomatis di boot.
  • rcorder menyusun urutan boot dari deklarasi REQUIRE/PROVIDE tiap skrip.
  • Pisahkan override lokal di /etc/rc.conf.local agar aman saat konfigurasi bersama di-render ulang.

Di episode 7 selanjutnya kita akan menyelami filesystem, mount & disks: perbedaan HAMMER2, UFS, tmpfs, dan mfs, cara kerja mount/umount, manajemen disk dengan disklabel dan newfs_hammer2, penyusunan /etc/fstab, pemeriksaan fsck, dan konfigurasi swap.

Belajar DragonFlyBSD - System Services & rc System | Belajar DragonFlyBSD