Ho appena effettuato l'aggiornamento dal server Ubuntu 14 alla versione 15. Ho avuto problemi a far funzionare il mio script upstart dopo l'aggiornamento e ho letto che systemd è il nuovo predefinito. Sono tutt'altro che un esperto di Linux, quindi per favore andate piano con me :-)
Ecco cosa era prima il mio script upstart:
description "NZBGet upstart script"
setuid robert
setgid robert
start on runlevel [2345]
stop on runlevel [016]
respawn
expect fork
script
exec nzbget -D
end script
pre-stop script
exec nzbget -Q
end script
Sulla base della pagina upstart to systemd wiki , ho usato le tabelle fornite lì per mappare le cose il più vicino possibile nel mio nuovo file di servizio systemd:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Questo file si trova in /home/robert/.config/systemd/user/nzbget.service
. Per avviare il servizio manualmente, ho fatto:
$ systemctl --user start nzbget
Funziona benissimo. Tuttavia, quando esco dalla sessione SSH, il servizio si arresta. Inoltre, non si avvia all'avvio o al login dell'utente. Voglio che si comporti come un servizio upstart: voglio che si avvii all'avvio, funzioni costantemente e come utente specifico.
Cosa devo fare per ottenere questa configurazione?
systemctl enable
comando, all'inizio non era ovvio per me. Anche l'abilitazione mi ha dato alcuni avvertimenti su una[Install]
sezione mancante . L'ho ignorato, ma non sono sicuro che influenzerà la sua capacità di avvio all'avvio.