Должен ли systemctl показывать вывод при неудачном запуске / остановке? - PullRequest
0 голосов
/ 07 сентября 2018

Я погуглил каждый вариант этого вопроса, о котором только могу подумать, но я просто получаю вопросы о сбойных сервисах, а не о том, как systemctl относится к ним.У меня есть сервис, который я запускаю как скрипт init.d.Теперь мы используем systemctl, хорошо.Я создал служебный файл, который является слегка измененной версией файла, автоматически сгенерированного systemd-sysv-generator.Для ExecStart и ExecStop он вызывает скрипт bash, который возвращает 0, если запуск / остановка прошла успешно, и ненулевой, если это не так.

Я понимаю, что нет вывода из "systemctl start / stop", еслиэто было успешно.Но я также не получаю никакого вывода, если один из вызовов не удался.Код возврата команды start / stop systemctl всегда равен 0, даже если код возврата исходного сценария - нет.Ясно, что произошел сбой, потому что он отображается как сбой при запуске команды состояния.

Это ожидаемое поведение?Разве это не должно указывать на то, что что-то не получилось, если вы не запустили отдельную команду состояния?И если это не так, как он должен себя вести, как я могу указать, что произошел сбой?

Сервисный файл ниже.

[Unit]
SourcePath=/my/service/script.sh

[Service]
Type=forking
Restart=no
TimeoutSec=5min
IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=/my/service/script.sh start
ExecStop=/my/service/script.sh stop
...