$HOME
menunjuk ke direktori home pengguna yang menjalankan skrip. Layanan Systemd dimulai dengan root sehingga kemungkinan akan berusaha /root/theFolder/run.sh
. Gunakan jalur absolut dalam file layanan.
Anda juga memiliki forking
opsi yang ditetapkan. Ini diperlukan untuk program yang latar belakangnya sendiri, apakah skrip Anda melakukan ini? Kebanyakan tidak dan jika milik Anda tidak, Anda harus menghapus opsi ini atau systemd akan menunggu skrip Anda selesai untuk mengklaimnya sebagai dimulai.
Juga file layanan sistem yang mengarah ke skrip di direktori home Anda tidak disarankan dan mungkin masalah keamanan. Karena dijalankan sebagai root, siapa pun yang dapat memodifikasinya berpotensi mendapatkan akses root ke komputer Anda. Jauh lebih baik untuk menyalin skrip ke /usr/local/bin
dan memastikan itu dimiliki dan hanya dapat ditulisi oleh root untuk menghentikan ini. Ini juga merupakan ide yang baik untuk menjalankan skrip sebagai pengguna yang tidak memiliki hak menggunakan User=
dan Group=
opsi dalam file layanan.
Jika Anda ingin menjalankannya sebagai pengguna Anda lebih baik memasukkan file layanan ~/.config/systemd/user/
dan memulai / mengaktifkannya dengan systemctl --user enable yourservice && systemctl --user start yourservice
(catatan, jalankan karena pengguna Anda tidak root). Lihat ini untuk info lebih lanjut tentang file layanan pengguna.
systemctl daemon-reload
setelah membuat file unit Anda?