Pernahkah Anda terpikir untuk membuat sistem Linux Anda bekerja lebih cerdas? Dengan systemd, Anda bisa! Systemd adalah pengelola layanan yang mengatur berbagai program dan proses di sistem Linux Anda. Banyak distribusi Linux populer seperti Ubuntu, Debian, Red Hat, dan Fedora menggunakan systemd.
Biasanya, program akan membuat file unit (unit file) sendiri saat instalasi. Contohnya, Apache atau Nginx akan menambahkan file unit ke direktori systemd untuk memudahkan pengelolaan. Namun, Anda juga bisa membuat layanan systemd kustom di Linux dengan membuat file unit baru.
Apa yang Bisa Dilakukan dengan Layanan Systemd Kustom?
Dengan layanan systemd kustom, Anda dapat:
- Menjalankan skrip shell secara berulang
- Mencadangkan sistem secara berkala
- Memonitor direktori tertentu
- Mengelola layanan tertentu
- Dan masih banyak lagi!
Memulai: Membuat Layanan Systemd Kustom
Sebagai contoh, kita akan membuat layanan systemd kustom untuk skrip shell yang terletak di "/home/linuxtldr/myscript". Pastikan untuk mengganti path ini ke program atau skrip shell yang Anda inginkan.
1. Lokasi File Unit Systemd
Semua file layanan (atau unit) systemd berada di direktori "/etc/systemd/system". Mari buat file baru untuk layanan systemd kita. Pada contoh ini, kita beri nama file tersebut "tes-app.service".
Buka terminal dan jalankan perintah berikut:
sudo nano /etc/systemd/system/tes-app.service
2. Template File Layanan Systemd
Berikut ini adalah template dasar untuk membuat layanan systemd:
[Unit] Description=<deskripsi layanan Anda>
[Service] User=<pengguna yang menjalankan skrip> Group=<grup yang menjalankan skrip> WorkingDirectory=<path direktori skrip> ExecStart=<path lengkap skrip>
Opsional (dijelaskan di bawah)
Restart=always RestartSec=5
[Install] WantedBy=multi-user.target
Klik disini untuk melihat daftar lengkap opsi systemd beserta contohnya. https://discourse.nixos.org/t/onlyoffice-document-server-failing-to-start-in-systemd-container-after-upgrade-to-23-05/29592
3. Mengisi Template dengan Informasi Layanan Anda
Ganti informasi dalam template dengan informasi layanan Anda. Sebagai contoh, untuk menjalankan skrip shell yang terletak di "/home/linuxtldr/myscript", maka kode akhir akan terlihat seperti berikut:
[Unit]
Description=Menjalankan Skrip Shell
[Service]
User=root
Group=root
WorkingDirectory=/home/linuxtldr/
ExecStart=/home/linuxtldr/myscript
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
4. Simpan dan Aktifkan Layanan
Salin dan tempelkan kode tersebut ke dalam file "tes-app.service", kemudian simpan dan tutup file.
Selanjutnya, kita perlu memberitahu systemd tentang layanan baru ini. Jalankan perintah berikut di terminal:
sudo systemctl daemon-reload
5. Menjalankan dan Mengecek Status Layanan
Sekarang, kita dapat menjalankan dan mengecek status layanan:
- Menjalankan layanan:
sudo systemctl start tes-app.service
- Mengecek status layanan (berjalan atau tidak):
sudo systemctl status tes-app.service
6. Mengaktifkan Layanan di Startup
Jika Anda ingin layanan ini berjalan otomatis saat sistem dinyalakan, jalankan perintah berikut:
sudo systemctl enable tes-app.service
7. Memverifikasi Konfigurasi Startup
Periksa apakah layanan berhasil dikonfigurasi untuk berjalan otomatis saat startup menggunakan perintah berikut. Perhatikan output "enable" yang berarti startup otomatis dan "disable" yang berarti tidak otomatis:
sudo systemctl is-enabled tes-app.service
8. Menonaktifkan Startup Otomatis
Jika Anda tidak ingin layanan ini berjalan otomatis saat startup, jalankan perintah berikut:
sudo systemctl disable tes-app.service
9. Menghentikan Layanan
Untuk menghentikan layanan, jalankan perintah berikut:
sudo systemctl stop tes-app.service
10. Menghapus Layanan
Untuk menghapus layanan kustom Anda, cukup hapus file dari direktori "/etc/systemd/system". Jalankan perintah berikut:
sudo rm /etc/systemd/system/tes-app.service
Selamat! Anda telah berhasil membuat dan mengelola layanan systemd kustom di Linux.