Je viens de mettre à niveau la version 15 du serveur Ubuntu 14 vers la version 15. J'ai eu du mal à faire fonctionner mon script d'installation après la mise à niveau et j'ai lu que systemd était la nouvelle valeur par défaut. Je suis loin d'être un expert linux, alors allez-y doucement sur moi :-)
Voici ce que mon script parvenu était avant:
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
Sur la base de la page de wiki de updart to systemd , j’ai utilisé les tables fournies pour mapper le plus fidèlement possible dans mon nouveau fichier de service systemd:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Ce fichier se trouve à l'adresse /home/robert/.config/systemd/user/nzbget.service
. Pour démarrer le service manuellement, je faisais:
$ systemctl --user start nzbget
Cela fonctionne très bien. Cependant, lorsque je me déconnecte de ma session SSH, le service s'arrête. En outre, il ne démarre pas au démarrage ou lors de la connexion de l'utilisateur. Je veux qu'il se comporte comme s'il s'agissait d'un service upstart: je veux qu'il démarre au démarrage, s'exécute constamment et en tant qu'utilisateur spécifique.
Que dois-je faire pour obtenir cette configuration?
systemctl enable
commande, ce n'était pas évident pour moi au début. Cela m'a également mis en garde contre une[Install]
section manquante . Je l'ai ignoré, mais je ne sais pas si cela affectera sa capacité à démarrer au démarrage.