Я только что обновил Ubuntu Server 14 до версии 15. У меня возникли проблемы с работой моего сценария upstart после обновления, и я прочитал, что 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
Основываясь на вики-странице upstart для systemd , я использовал предоставленные там таблицы, чтобы как можно точнее отобразить вещи в моем новом файле службы 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]
раздела. Я проигнорировал это, но я не уверен, повлияет ли это на его способность запускаться во время загрузки.