Могу ли я заставить systemd показывать статус службы после запуска или остановки службы?


8

Я пытаюсь заставить systemd делать то, что делают сценарии init.d, автоматически показывая состояние службы после того, как вручную была дана команда запуска или остановки. Это как-то возможно?

systemd, к сожалению, вылетает обратно, так как он работает в фоновом режиме, а затем вам нужно сделать вторую команду, чтобы показать состояние, запуск или остановка могут или не могли бы сработать, systemd не скажет вам, пока вы не попросите и не оставите вас в блаженном неведении.

то есть. Я пытаюсь получить

service nginx status

работать автоматически после того, как я сделаю

service nginx start

или

service nginx restart

(или в поврежденном мозге systemd, systemctl start nginx.service)


1
Я использую «поврежденные мозгом» команды (они мне нравятся!). Они на самом деле ничего не говорят, когда все хорошо, но сообщат, когда что-то не получится. По крайней мере, так на openSUSE 13.1. Вы уверены, что они "молчат", когда они терпят неудачу? Ты пробовал systemctl start nginx.service && echo SUCCESS || echo failure?
Гюйгенс

2
@Huygens не рассчитывает на то, что systemd сможет обнаружить все сбои, вполне могут быть молчаливые сбои или предупреждения. Процессы запускаются в фоновом режиме, и systemd выходит из-под контроля, это совсем не то же самое, что init.d. Я вижу, что это происходит последовательно, при создании файла PID происходит сбой. Получение статуса после ручного запуска или перезапуска абсолютно необходимо для systemd (и вопрос моего вопроса).
ck_

спасибо за разъяснения, я кое-что узнал здесь! Я жду ответа на этот вопрос!
Гюйгенс

Синтаксис braindead является сервисным, потому что в отличие от гораздо лучшего системного синтаксиса, он не позволяет вам работать с несколькими сервисами одновременно: systemctl stop service1 service2 service3
бог

1
Если вы по-прежнему видите ту же несогласованность при проверке состояния выхода, systemctlкак предлагал @Huygens, возможно, проблема заключается в том, что nginx.serviceзапускается успешно, но после этого происходит сбой. Попробуйте проверить журнал или в журналах Nginx.
Амир

Ответы:


1

Для вашего варианта использования нет встроенной команды, поэтому вам нужно будет создать псевдоним для вашей любимой оболочки или простой оболочки сценариев.


0

Чтобы сделать systemd более «многословным», добавьте / раскомментируйте следующие строки в вашей /etc/systemd/journald.confи затем перезагрузите компьютер:

ForwardToConsole=yes
MaxLevelConsole=debug
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.