Ich habe gerade ein Upgrade von Ubuntu Server 14 auf Version 15 durchgeführt. Ich hatte Probleme, mein Upstart-Skript nach dem Upgrade zum Laufen zu bringen, und habe gelesen, dass systemd der neue Standard ist. Ich bin weit entfernt von einem Linux-Experten, also schont mich bitte :-)
Hier ist, was mein Emporkömmlingsskript vorher war:
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
Basierend auf der Wiki-Seite "Upstart to Systemd" habe ich die dort bereitgestellten Tabellen verwendet, um die Dinge so genau wie möglich in meiner neuen Systemd-Servicedatei abzubilden:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Diese Datei befindet sich unter /home/robert/.config/systemd/user/nzbget.service
. So starten Sie den Dienst manuell:
$ systemctl --user start nzbget
Das funktioniert super. Wenn ich mich jedoch von meiner SSH-Sitzung abmelde, wird der Dienst beendet. Es startet auch nicht beim Booten oder bei der Benutzeranmeldung. Ich möchte, dass es sich genauso verhält wie ein Start-Service: Ich möchte, dass es beim Booten startet, ständig ausgeführt wird und als bestimmter Benutzer.
Was muss ich tun, um diese Konfiguration zu erhalten?
systemctl enable
Befehl angeben , dies war mir zunächst nicht klar. Das Aktivieren warnte mich auch vor einem fehlenden[Install]
Abschnitt. Ich habe es ignoriert, bin mir aber nicht sicher, ob es die Fähigkeit beeinträchtigen wird, beim Booten zu starten.