Как сгенерировать файл systemd .service по умолчанию?

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

0
08.01.2020, 16:57
2 ответа

Вы используете модуль, сгенерированный systemd-sysv-generatorиз скрипта van Smoorenburg rc, скорее всего, с информацией заголовка LSB. systemd-sysv-generatorиспользует единый -размер -подходит -для всех подходов, модифицированный некоторыми догадками. van Smoorenburg rcмогут запускаться или не запускаться длительные -запущенные процессы-демоны, могут использоваться или не использоваться файлы PID и т.д. systemd-sysv-generatorпытается генерировать сервисные единицы, учитывающие эти несколько возможностей.

Автоматически -сгенерированные сервисные единицы имеют RemainAfterExit=trueпри создании из сценариев ван Смуренбурга rcс информацией LSB. Таким образом, когда процесс, выполняющий сценарий, завершается и не оставляет запущенных процессов, служба по-прежнему считается «активной», а процесс службы завершился. Вот что значит оставшееся после выхода . Следовательно, служба переходит в состояние active (exited).

Вы должны прекратить использовать /etc/init.d/myserviceи перестать полагаться на systemd-sysv-generatorдля переноса его в одноразовые сервисные единицы. Создайте правильный, первоклассный файл сервисной единицы.

Вы можете начать с того, что systemctl edit --full myserviceдает вам. Но явно , что имеет неверную RemainAfterExit=trueнастройку, для начала .

Конечно,это также хорошая причина, чтобы не продолжать как есть и не продолжать полагаться на автоматически -сгенерированный файл сервисной единицы.

Дополнительная литература

4
28.01.2020, 02:15

Не уверен, что стоит оставить этот вопрос, но непонимание с моей стороны сделало вопрос бессмысленным.

  • Моя ошибка заключалась в том, что я думал, что systemctl edit myserviceна самом деле редактирует полный.serviceфайл (, как можно было бы предположить без предварительного уведомления на основе имени команды ), и поэтому я должен написать сначала один, прежде чем я смогу использовать эту команду. Это объясняется здесь .

  • По сути, systemctl edit myserviceпредназначен для переопределения настроек, поэтому по умолчанию он пуст .

  • Чтобы отредактировать фактический файл, выполните systemctl edit --full myservice. И если я сделаю это в своей системе -V, я увижу полный сгенерированный файл.

5
28.01.2020, 02:15

Теги

Похожие вопросы