Buat sebuah file dengan ekstensi
.servicedi dalam/lib/systemd/system/directory. Dalam kasus ini, saya buat dengan namapajak.serviceCopy struktur “sederhana” dibawah ke file
pajak.service[Unit] Description=kursPajak [Service] Group=akhmad Type=simple Restart=always RestartSec=5s WorkingDirectory=/home/akhmad/pajak/ ExecStart=env HTTP_PORT=":8080" /home/akhmad/pajak/pajak PermissionsStartOnly=true StandardOutput=syslog StandardError=syslog SyslogIdentifier=sleepservice [Install] WantedBy=multi-user.targetDari contoh konfigurasi service di atas, aplikasi Go saya berada di dalam directory
/home/akhmad/pajak/dengan nama file executable adalahpajak.Yang harus diperhatikan dari config diatas adalah
ExecStartdanWorkingDirectoryExecStartini diarahkan ke file executable-nya, seperti ketika menjalankan aplikasi-nya secara langsung. Terdapatenv HTTP_PORT=":8080"yang akan di-pass ke aplikasinya.WorkingDirectoryini akan menjadi relative path dari aplikasi. Dan tidak bergantung terhadap dimana aplikasi go ini berada, jadi ketikapajakini berapa di/usr/bin, dan ExecStart di-set menjadienv HTTP_PORT=":8080" /usr/bin/pajak, ketikaWorkingDirectoryini di-set, dia akan tetap relative terhadap directory/home/akhmad/pajak/, dan bukan terhadap directory/usr/bin/.
Selain itu, output dan error dari service ini hanya akan disimpan ke syslog, syslog ini bisa dicek dengan command
sudo systemctl status pajak.service
Untuk penjelasan lebih lanjut mengenai variable lain, bisa menuju ke man-page nya systemd disini.
Setelah service selesai dibuat, service bisa langsung di start dengan command
sudo systemctl start <nama_file>dan dalam kasus ini menjadi
sudo systemctl start pajak.serviceJika service tidak terlihat, reload terlebih dahulu service daemon dengan command
sudo systemctl daemon-reloadAgar service selalu dijalankan diawal OS boot, enable service dengan command
sudo systemctl enable pajak.service