Catatan Kuliah: Service & Daemon Management
Di artikel sebelumnya, kita sudah sukses membedah seluk-beluk jaringan dan troubleshooting dasar di Linux. Nah, bayangkan Anda memiliki sebuah skrip otomatisasi atau aplikasi web yang harus berjalan terus-menerus di VPS. Apakah Anda harus membiarkan terminal Linux Anda terbuka selamanya? Tentu tidak!
Di sinilah pentingnya memahami Service & Daemon Management. Pada artikel kali ini, kita akan belajar bagaimana mengubah skrip biasa menjadi sebuah layanan sistem (service) yang berjalan otomatis di latar belakang (background), kebal terhadap crash, dan langsung aktif saat server dinyalakan (booting).
1. Konsep Dasar: Apa itu Daemon dan Service?
Sebelum masuk ke praktik teknis, mari kita pahami dulu istilah-istilah utamanya:
- Daemon: Adalah program atau proses yang berjalan secara background di latar belakang tanpa interaksi langsung dari pengguna melalui tatap muka grafis ataupun terminal aktif. Karakteristik umum dari daemon adalah namanya yang kerap diakhiri dengan huruf "d" (contoh:
sshduntuk SSH,httpdataunginxuntuk web server,systemd, dancron d). - Service: Adalah abstraksi atau entitas yang dikelola oleh init system untuk mengontrol daemon tersebut. Service menyediakan mekanisme terpadu agar administrator dapat memulai, menghentikan, atau memeriksa program background dengan mudah.
- systemd: Adalah sistem init dan manajer servis pertama yang berjalan ketika Linux melakukan booting. Karena menjadi fondasi utama,
systemdselalu memegang Process ID (PID) = 1. - systemctl: Adalah perintah command-line utama yang kita gunakan sehari-hari untuk berinteraksi, mengontrol, dan memanajemen ekosistem
systemd.
2. Mengontrol Siklus Hidup (Lifecycle) Service
Untuk mengelola layanan yang ada di Linux, sintaks dasar yang digunakan sangatlah sederhana: sudo systemctl [aksi] [nama_service]
Berikut adalah beberapa aksi utama yang wajib dihafal oleh seorang SysAdmin:
status: Memeriksa kondisi terkini dari servis (apakah aktif, mati, atau mengalami error).start: Menjalankan/menghidupkan servis yang sedang mati saat ini juga.stop: Menghentikan/mematikan servis yang sedang berjalan.restart: Mematikan servis lalu menghidupkannya kembali secara instan. Aksi ini akan mengubah PID proses dan biasanya digunakan setelah kita mengubah konfigurasi besar aplikasi.reload: Memuat ulang berkas konfigurasi aplikasi tanpa mematikan servisnya. PID proses tetap sama, sehingga koneksi pengguna ke server tidak akan terputus.
Catatan Penting: Enable vs Start
Banyak pemula yang bingung membedakan kedua perintah ini:
start/stophanya berpengaruh pada saat ini juga. Ketika komputer di-restart, kondisinya akan kembali ke setelan awal.enable/disableberpengaruh pada masa depan. Perintah ini mengatur apakah servis akan otomatis langsung hidup secara mandiri saat komputer baru dinyalakan (boot time).
3. Struktur Anatomi Berkas .service
Setiap kali kita ingin membuat custom service sendiri, kita harus meletakkan berkas konfigurasinya di dalam direktori sistem: /etc/systemd/system/ dengan ekstensi wajib .service.
Secara umum, berkas konfigurasi ini terbagi menjadi 3 bagian (seksi) utama:
[Unit]: Berisi informasi umum dan urutan eksekusi service.- Description: Nama atau deskripsi singkat layanan.
- After: Memastikan service kita baru berjalan setelah layanan lain yang menjadi syaratnya (misal:
network.target) sudah siap.
[Service]: Berisi instruksi teknis bagaimana skrip dijalankan.- ExecStart: Jalur absolut (absolute path) menuju skrip atau perintah yang ingin dieksekusi.
- Type: Tipe eksekusi (umumnya diisi
simpleuntuk skrip biasa). - Restart: Kebijakan jika terjadi kegagalan. Jika diisi
always,systemdakan otomatis menghidupkan kembali skrip kita jika mendadak mati (crash). - User: Menentukan user Linux mana yang mengeksekusi skrip tersebut (misal
rootatau user biasa demi keamanan).
[Install]: Berisi informasi bagaimana service diaktifkan saat booting.- WantedBy: Umumnya diisi
multi-user.target(artinya service aktif pada mode multi-user/normal terminal).
- WantedBy: Umumnya diisi
4. Alur Membuat Custom Service: Studi Kasus Pengawas Memori
Untuk memberikan gambaran nyata, berikut adalah alur logis bagaimana kita bisa membuat layanan pengawas memori RAM secara otomatis:

- Menyiapkan Skrip Utama: Kita membuat skrip Bash (
pantau.sh) yang berisi perulangan tanpa henti (while true) untuk mengambil data sisa RAM gratis menggunakan perintahfree -h, lalu mencatat hasilnya ke file/var/log/pantau_memori.logsetiap 5 detik sekali (sleep 5). - Mendaftarkannya ke Unit Service: Kita membuat berkas
.servicedi/etc/systemd/system/dan mengarahkan parameterExecStarttepat ke lokasi absolute path skrippantau.shtadi. - Melakukan Reload Daemon: Setiap ada berkas baru di direktori
systemd, kita wajib menjalankansudo systemctl daemon-reloadagar sistem mengenali layanan baru tersebut. - Eksekusi dan Pengujian: Layanan dihidupkan dengan
systemctl start. Kita bisa memantau isi lognya secara live menggunakan perintahtail -f. - Uji Keandalan (Anti-Crash): Berkat parameter
Restart=always, jika kita mematikan paksa proses tersebut menggunakan perintahsudo kill -9 [PID],systemdsecara cerdas akan langsung mendeteksi bahwa program mati secara ridak wajar dan langsung menghidupkannya kembali dalam hitungan milidetik dengan nomor PID yang baru!
Kesimpulan
Menguasai manajemen service lewat systemd merupakan lompatan besar untuk mengubah server Linux Anda menjadi sistem yang mandiri dan tangguh. Anda tidak perlu lagi khawatir aplikasi latar belakang Anda mati di tengah malam karena systemd akan bertindak sebagai pengawas 24/7 yang siap menghidupkan kembali aplikasi Anda kapan pun terjadi kendala.