Membuat Daemon Process dengan Systemd

Minggu, 22 November 2020

Membuat Service Systemd di Linux. Kadang saya mendapatkan kondisi dimana script yang saya jalankan harus dibuat agar berjalan menggunakan service systemd agar tetap hidup, dimana script tersebut akan direstart secara otomatis ketika terhenti secara tidak sengaja. Nah di tutorial ini saya akan membahas sedikit mengenai bagaimana cara membuat daemon service di systemd.


Secara garis besar, berikut isi dari daemon service file di systemd.

[Unit]
Description=Deskripsi Service

[Service]
Type=simple
ExecStart=/path/script

[Install]
WantedBy=multi-user.target

Itu saja yang diperlukan. Meskipun beberapa parameter mungkin bisa ditambahkan sesuai kebutuhan.

File tersebut harus diletakkan di direktori /etc/systemd/system/ dengan ekstensi .service

Sebagai contoh, saya memiliki script bash yang berlokasi di /home/linuxsec/checker.sh dan ingin dijadikan daemon service.

sudo nano /etc/systemd/system/checker.service

Lalu isinya: 

[Unit]
Description=Checker Service

[Service]
Type=simple
ExecStart=/bin/bash /home/linuxsec/checker.sh

[Install]
WantedBy=multi-user.target

Untuk merestart service ketika script berhenti, tambahkan baris Restart=always di block [Service]. Jika ingin proses tersebut dijalankan oleh user tertentu, kalian bisa atur usernya di block [Service] juga. Tambahkan baris User=<username-nya>. Defaultnya semua service akan dijalankan menggunakan user root.

Bentuk akhirnya menjadi seperti berikut:

[Unit]
Description=Checker Service

[Service]
Type=simple
Restart=always
User=linuxsec
ExecStart=/bin/bash /home/linuxsec/checker.sh

[Install]
WantedBy=multi-user.target

Selanjutnya jalankan perintah berikut agar service baru tersebut bisa digunakan:

sudo systemctl daemon-reload

Sekarang kalian bisa jalankan service nya menggunakan perintah
sudo systemctl start <nama-service>
Dan untuk memeriksa status servicenya, gunakan command
sudo systemctl status <nama-service>
Untuk mengaktifkan service tersebut saat booting, gunakan perintah
sudo systemctl enable <nama-service>
Oke mungkin sekian tutorial singkat kali ini, semoga bermanfaat. Jika ada yang ingin ditanyakan silahkan tinggalkan komentar.

Referensi:
  • https://www.freedesktop.org/software/systemd/man/systemd.service.html

Artikel Terkait Linux