Memahami sistem manajemen service FreeBSD: /etc/rc.conf sebagai pusat konfigurasi, skrip rc di /etc/rc.d, dan perintah service untuk kontrol runtime. Kalian juga akan mempelajari urutan boot loader, kernel, rc, serta memakai sysrc untuk mengelola konfigurasi tanpa editor manual.

Di episode 5 sebelumnya kalian sudah mengelola user dan grup dengan pw, serta memahami privilege escalation. Sekarang kita masuk ke jantung otomatisasi sistem: bagaimana service dijalankan, dihentikan, dan diaktifkan otomatis saat boot.
FreeBSD memakai rc system bergaya SysV yang sederhana dan dapat diprediksi. Konfigurasi terpusat di /etc/rc.conf, skrip layanan ada di direktori rc.d, dan kontrol runtime dilakukan dengan perintah service. Ditambah sysrc, kalian bisa mengelola semuanya dari CLI tanpa menyentuh editor. Mari kita bedah lapis demi lapis.
Semua keputusan "service apa yang aktif" dan "bagaimana konfigurasinya" hidup di /etc/rc.conf. Ini satu-satunya file yang kalian perlukan untuk mengaktifkan service:
hostname="server01"
sshd_enable="YES"
ntpd_enable="YES"
ifconfig_em0="DHCP"Pola yang harus kalian perhatikan: service_enable="YES". Variabel diawali nama service dan diakhiri _enable. Ketika bsdinstall membuat sistem, file ini sudah berisi konfigurasi dasar.
FreeBSD menyimpan nilai bawaan semua variabel di /etc/defaults/rc.conf. Jangan pernah mengedit file ini — nilainya akan ditimpa saat upgrade. Cukup baca untuk memahami variabel yang tersedia, lalu timpa di /etc/rc.conf:
grep -E "sshd|ntpd" /etc/defaults/rc.confAturan sederhananya: edit /etc/rc.conf, jangan sentuh /etc/defaults/rc.conf.
Warning
Kesalahan umum pengguna Linux yang pindah ke FreeBSD adalah mencari konfigurasi service di file service masing-masing, seperti sshd_config untuk mengatur "enable". Di FreeBSD, file konfigurasi aplikasi dan pengaturan enable adalah dua hal terpisah: enable di rc.conf, parameter aplikasi di file konfigurasi aplikasi itu sendiri.
Skrip yang mengendalikan service berada di dua lokasi:
/etc/rc.d/ — service bagian dari base system (sshd, ntpdate, routing)./usr/local/etc/rc.d/ — service dari pkg dan ports (nginx, mysql, doas).Setiap skrip mendukung aksi standar: start, stop, restart, status, reload, dan rcvar. Baca skrip untuk memahami variabel yang didukungnya:
service sshd rcvarOutputnya menampilkan baris sshd_enable="YES" dan sshd_flags — persis apa yang perlu kalian isi di rc.conf.
Setelah service diaktifkan, kelola status runtime dengan service:
service sshd start
service sshd status
service sshd restart
service sshd stopservice <nama> onestart berguna untuk menjalankan service yang tidak diaktifkan di rc.conf — berjalan sekali tanpa membuatnya persist di boot:
service nginx onestartKalian juga bisa menaruh skrip custom di /usr/local/etc/rc.d untuk dikelola cara yang sama. Saya akan membahas pola ini lebih lanjut di episode 11 ketika membuat service kustom.
Memahami urutan boot membantu troubleshooting service yang tidak muncul saat start:
/boot/loader.conf dan memuat kernel.init dan /etc/rc./etc/rc membaca /etc/defaults/rc.conf + /etc/rc.conf, lalu menjalankan skrip rc secara berurutan.Log proses boot tersimpan di /var/log/boot.log (jika diaktifkan) dan bisa dilihat dengan dmesg. Jika sebuah service gagal start, catat urutannya di sini.
Untuk perintah sekali jalan di akhir boot, FreeBSD mendukung /etc/rc.local. File ini dieksekusi terakhir, setelah semua service:
echo "Boot selesai" > /var/log/rc.local.logInfo
Gunakan /etc/rc.local dengan bijak. Untuk pekerjaan yang harus dijalankan ulang atau dikontrol, lebih baik tulis skrip rc yang proper daripada menyembunyikan semuanya di rc.local yang sulit diaudit.
sysrc adalah tool yang membuat pengelolaan rc.conf tanpa editor menjadi mungkin. Sintaksnya mirip mengubah variabel shell:
sysrc sshd_enable="YES"
sysrc nginx_enable="YES"
sysrc nginx_flags="-c /usr/local/etc/nginx/nginx.conf"sysrc membaca dan menulis /etc/rc.conf, membuat backup sebelum perubahan, dan mempertahankan format file. Cek nilai yang sudah ada:
sysrc sshd_enable
sysrc -asysrc -a menampilkan seluruh isi rc.conf. Ini cara cepat untuk mengaudit apa yang aktif di sistem. Karena mengedit file secara programatik, sysrc sempurna untuk skrip provisioning dan playbook otomasi.
Success
Kombinasi sysrc untuk mengatur config dan service untuk mengontrol runtime adalah dua kata kunci yang akan kalian pakai setiap hari di FreeBSD. Keduanya idempoten dan mudah dipelajari — cocok untuk otomasi dan dokumentasi yang bisa dieksekusi.
Mari kita praktikkan pola lengkap untuk mengaktifkan nginx dari pkg:
pkg install nginx
sysrc nginx_enable="YES"
service nginx start
service nginx statusEmpat baris ini adalah pola yang akan kalian ulangi untuk hampir semua service: install, enable, start, verify. Ingat, sysrc menggantikan kebutuhan membuka editor untuk pengaturan enable.
Di episode 6 ini kalian sudah memahami rc system FreeBSD: /etc/rc.conf sebagai pusat konfigurasi, /etc/defaults/rc.conf sebagai nilai default yang tidak boleh diedit, skrip rc di dua direktori, perintah service untuk kontrol runtime, urutan boot, dan sysrc sebagai pengelola konfigurasi berbasis CLI.
Inti yang harus dibawa pulang:
/etc/rc.conf dengan pola service_enable="YES"./etc/defaults/rc.conf — itu nilai bawaan yang ditimpa saat upgrade.service <nama> start/stop/restart/status mengontrol runtime./etc/rc, lalu skrip rc.sysrc mengubah rc.conf tanpa editor dan aman untuk otomasi.Di episode 7 selanjutnya kita akan membahas filesystem, mount & disks — dari UFS dan ZFS, pseudo-filesystem seperti tmpfs dan devfs, sampai mount dan umount, konfigurasi /etc/fstab, dan manajemen swap. Fondasi penyimpanan ini menentukan bagaimana data kalian hidup di disk.