Я был перед той же проблемой.
Если не считать прямой команды «lazy-stop-then-start», встроенной в initctl, мы должны написать скрипт.
Вызывать запуск и перезапуск, если это не удается:
initctl start JOB || initctl restart JOB
Этот сценарий, вероятно, не тот ответ, который мы оба искали, но он достаточно короткий, чтобы упомянуть его.
Пока служба работает хорошо, она будет работать.
При сбое служб этот скрипт завершается ошибкой дважды; Например, если служба была остановлена и фактически не запускается, она также не будет перезапущена.
Определенно ищет улучшения в этом.
Надеюсь, это поможет.