ps - ef | grep -v grep | grep <script_name> | awk '{print $2}'
Приведенная выше команда даст PID для имени_скрипта. Также вы можете заставить скрипт записать временный файл с его PID.
Добавьте строку внутри скрипта: echo $$>/tmp/script_pid.tmp
Основываясь на информации из вашего собственного ответа, самый правильный известный мне способ решить вашу проблему — это выяснить, на каком этапе упорядочения загрузки systemd устанавливаются модули /sys
.
Как только вы это узнаете, вы можете просто добавить директиву After=<whatever>.target
в свой пользовательский файл службы, чтобы systemd знала, что не запускает ее до тех пор, пока не будут выполнены предварительные шаги.
Если вы не можете отследить, какая цель конкретно включает модули /sys
, вы всегда можете просто предположить что-то, что заставит вашу службу загружаться относительно поздно во время загрузки, например After=local-fs.target
. Это не самый самый правильный способ, но если вы будете осторожны и не вводите «цикл заказа», он, вероятно, будет работать нормально.