Назад | Перейти на главную страницу

Как я могу «запустить», если служба не запущена, но «перезагрузить», если она работает с использованием systemd?

У меня есть развертывание (capistrano), которое в случае успеха перезагружает systemd:

sudo systemctl reload myserver.service

Но сразу после первого развертывания служба еще не работает. В таком случае я хочу запустить его.

sudo systemctl start myserver.service

Есть ли в systemd флаг или другой трюк, который определяет: «запущена ли служба, затем перезагрузите ее, в противном случае запустите ее»? Альтернативой было бы встроить это в сам инструмент развертывания, но я бы предпочел использовать существующие функции, если systemd их предоставляет.

Вы наверное что-то перепутали. Команда для перезагрузки или запуска службы systemd - это systemctl.
Можешь попробовать

sudo systemctl reload-or-restart myserver.service

Это должно сделать то, о чем Вы просили.