Вы должны проверить, смонтирован ли диск, на который ссылается символическая ссылка, во время запуска служб.
Вы используете модуль, сгенерированный 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
настройку, для начала .
Конечно,это также хорошая причина, чтобы не продолжать как есть и не продолжать полагаться на автоматически -сгенерированный файл сервисной единицы.
Не уверен, что стоит оставить этот вопрос, но непонимание с моей стороны сделало вопрос бессмысленным.
Моя ошибка заключалась в том, что я думал, что systemctl edit myservice
на самом деле редактирует полный.service
файл (, как можно было бы предположить без предварительного уведомления на основе имени команды ), и поэтому я должен написать сначала один, прежде чем я смогу использовать эту команду. Это объясняется здесь .
По сути, systemctl edit myservice
предназначен для переопределения настроек, поэтому по умолчанию он пуст .
Чтобы отредактировать фактический файл, выполните systemctl edit --full myservice
. И если я сделаю это в своей системе -V, я увижу полный сгенерированный файл.