Я щойно оновив з сервера Ubuntu 14 до версії 15. У мене виникли проблеми з тим, щоб мій сценарій для запуску працював після оновлення, і прочитав, що systemd є новим за замовчуванням. Я далеко не експерт по Linux, тому будь ласка, будь ласка, на мене :-)
Ось яким був мій сценарій на початку:
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
На основі сторінки вікі від початку роботи до системного вікі я використовував надані там таблиці, щоб відобразити речі максимально чітко у своєму новому файлі сервісу systemd:
[Unit]
Description=NZBGet Service
[Service]
Type=forking
ExecStart=/usr/local/bin/nzbget -D
ExecStop=/usr/local/bin/nzbget -Q
Restart=on-failure
Цей файл знаходиться за адресою /home/robert/.config/systemd/user/nzbget.service
. Щоб запустити послугу вручну, я робив:
$ systemctl --user start nzbget
Це чудово працює. Однак коли я виходжу з сеансу SSH, служба вимикається. Крім того, він не запускається під час завантаження або входу користувача. Я хочу, щоб він поводився так само, як це робилося як на початковій службі: я хочу, щоб він запускався під час завантаження, працював постійно та як конкретний користувач.
Що мені потрібно зробити, щоб отримати цю конфігурацію?
systemctl enable
команді, хоча для мене це спочатку було не очевидно. Також ввімкнення дало мені попередження про відсутність[Install]
розділу. Я проігнорував це, але не впевнений, чи вплине це на його здатність запускатися під час завантаження.