Použít systemd již obsahuje podporu pro uživatelské relace, ve skutečnosti byste na ní měli být již závislí (nevědomky).
Vytvořte adresář služeb
mkdir -p $HOME/.local/share/systemd/user
Vytvořte a upravte soubor služby (vim, gedit, geany – cokoli chcete)
vim $HOME/.local/share/systemd/user/my.service
Pokud se jedná o trvalou službu, měla by vypadat zhruba takto.
[Unit]
Description=My very own Service
[Service]
Type=simple
TimeoutStartSec=0
ExecStart=/path/to/start/script arguments
[Install]
WantedBy=default.target
Ale zní to, jako byste to raději chtěli spustit jednou a pak s tím být dobrý, takže raději použijte jednorázovou konfiguraci, jako je tato:
[Service]
Type=oneshot
RemainAfterExit=true
StandardOutput=journal
ExecStart=/path/to/start/script arguments
ExecStop=/path/to/stop/script arguments
[Install]
WantedBy=default.target
To samozřejmě předpokládá, že váš skript je spustitelný, tj.:
chmod a+x /path/to/start/script
chmod a+x /path/to/stop/script
Jinak byste museli předřadit cestu k příslušnému interpretu:
ExecStart=/bin/bash /path/to/start/script arguments
Nyní znovu načtěte systemd (a znovu se přihlaste kvůli testování)
systemctl --user enable my.service # enables the service
systemctl --user # should display your new unit in the list
journalctl --user should show the log
Pokud potřebujete více informací, podívejte se například na Arch-Wiki. Toto vlákno askubuntu má různé nápady, mimochodem včetně mých.
Chování (pokud jste root) můžete rozšířit na další uživatele globálním definováním služby. Chcete-li to provést, musíte vytvořit soubor služby v /usr/share/systemd/user/ není v $HOME/.local/share/systemd/user .