Gunakan systemd itu sudah termasuk dukungan untuk sesi pengguna, sebenarnya Anda seharusnya sudah bergantung padanya (tanpa disadari).
Buat direktori layanan
mkdir -p $HOME/.local/share/systemd/user
Buat edit file layanan (vim, gedit, geany - apa pun yang Anda inginkan)
vim $HOME/.local/share/systemd/user/my.service
Seharusnya kira-kira terlihat seperti ini, jika ini adalah layanan permanen.
[Unit]
Description=My very own Service
[Service]
Type=simple
TimeoutStartSec=0
ExecStart=/path/to/start/script arguments
[Install]
WantedBy=default.target
Tapi sepertinya Anda lebih suka memicunya sekali, lalu mahir menggunakannya, jadi lebih baik gunakan konfigurasi oneshot seperti ini:
[Service]
Type=oneshot
RemainAfterExit=true
StandardOutput=journal
ExecStart=/path/to/start/script arguments
ExecStop=/path/to/stop/script arguments
[Install]
WantedBy=default.target
Ini tentu saja mengasumsikan bahwa skrip Anda dapat dieksekusi, yaitu:
chmod a+x /path/to/start/script
chmod a+x /path/to/stop/script
Jika tidak, Anda perlu menambahkan jalur ke masing-masing juru bahasa:
ExecStart=/bin/bash /path/to/start/script arguments
Sekarang muat ulang systemd (dan login ulang untuk kepentingan pengujian)
systemctl --user enable my.service # enables the service
systemctl --user # should display your new unit in the list
journalctl --user should show the log
Jika Anda memerlukan informasi lebih lanjut, lihat Arch-Wiki misalnya. Utas askubuntu ini memiliki berbagai ide, termasuk ide saya.
Anda dapat memperluas perilaku (jika Anda root) ke pengguna lain dengan mendefinisikan layanan secara global. Untuk melakukannya, Anda perlu membuat file layanan di /usr/share/systemd/user/ bukan di $HOME/.local/share/systemd/user .