Właśnie zaktualizowałem serwer Ubuntu 14 do wersji 15. Miałem problem z uruchomieniem skryptu upstart po aktualizacji i przeczytałem, że systemd jest nowym domyślnym. Nie jestem ekspertem od Linuksa, więc proszę, uspokój się :-)
Oto, czym był mój skrypt wstępny:
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
Opierając się na stronie wiki upstart do systemd , użyłem podanych tam tabel, aby zmapować rzeczy tak dokładnie, jak to możliwe w moim nowym pliku usługi systemd:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Ten plik znajduje się na stronie /home/robert/.config/systemd/user/nzbget.service
. Aby ręcznie uruchomić usługę, robiłem:
$ systemctl --user start nzbget
To działa świetnie. Jednak po wylogowaniu z sesji SSH usługa zostaje wyłączona. Ponadto nie uruchamia się podczas uruchamiania lub logowania użytkownika. Chcę, aby zachowywał się tak samo, jak w przypadku usługi upstart: chcę, aby uruchamiał się przy rozruchu, działał nieprzerwanie i jako określony użytkownik.
Co muszę zrobić, aby uzyskać tę konfigurację?
systemctl enable
poleceniu, na początku nie było to dla mnie oczywiste. Również włączenie dało mi ostrzeżenie o brakującej[Install]
sekcji. Zignorowałem to, ale nie jestem pewien, czy wpłynie to na jego zdolność do uruchamiania w czasie rozruchu.