Служба Systemd не работает во время загрузки системы

ps - ef | grep -v grep | grep <script_name> | awk '{print $2}'

Приведенная выше команда даст PID для имени_скрипта. Также вы можете заставить скрипт записать временный файл с его PID.

Добавьте строку внутри скрипта: echo $$>/tmp/script_pid.tmp

4
19.12.2017, 16:25
1 ответ

Основываясь на информации из вашего собственного ответа, самый правильный известный мне способ решить вашу проблему — это выяснить, на каком этапе упорядочения загрузки systemd устанавливаются модули /sys.

Как только вы это узнаете, вы можете просто добавить директиву After=<whatever>.targetв свой пользовательский файл службы, чтобы systemd знала, что не запускает ее до тех пор, пока не будут выполнены предварительные шаги.

Если вы не можете отследить, какая цель конкретно включает модули /sys, вы всегда можете просто предположить что-то, что заставит вашу службу загружаться относительно поздно во время загрузки, например After=local-fs.target. Это не самый самый правильный способ, но если вы будете осторожны и не вводите «цикл заказа», он, вероятно, будет работать нормально.

1
21.12.2020, 16:03

Теги

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