Запуск systemd unit когда файлы в sys станут доступны

Настройки отображения темы Показывать по сообщений с сортировкой .
Выводить , отправленные .
Одна страница
Распечатать
4X_Pro
Создатель сайта
Всего сообщений: 3526
Зарегистрирован: 9 дек. 2015 г., 19:20
Рейтинг пользователя: 1719

0
#1
Кто-нибудь знает, что нужно прописать в systemd unit, чтобы он запускался тогда, когда будут созданы все необходимые файлы в /sys/class/drm/card-* ( в частности, нужен файл /sys/class/drm/card0-eDP-1/status, чтобы включать/выключать внутренниё дисплей ноутбука)? Пытался прописать что-нибудь вроде ConditionPathIsReadWrite=/sys/class/drm — не помогло, прописать Requires=udev.service (т.к. именно udev создаёт все необходимое, если правильно понимаю) — тоже нет. Перемещение в WantedBy=multi-user.target тоже не помогает. В итоге сейчас скрипт запускается с костылём sleep 1 в начале, и тогда всё проходит нормально, но хотелось бы найти нормальное решение.

Ребята, давайте жить спокойно!

4X_Pro
Создатель сайта
Всего сообщений: 3526
Зарегистрирован: 9 дек. 2015 г., 19:20
Рейтинг пользователя: 1719

0
#2
Как выяснислось, всё решалось достаточно просто: нужно в ConditionPathIsReadWrite было указывать путь не до каталога, а до конкретного файла:
ConditionPathIsReadWrite=/sys/class/drm/card0-eDP-1/status

Ребята, давайте жить спокойно!

Одна страница
Распечатать

У вас нет прав для отправки сообщений в эту тему.

Задать вопрос

Здесь можно задать мне вопрос или спросить совета по любой теме, затронутой в блогах или на форуме. После того, как я отвечу, вопрос и ответ появятся в соответствующем разделе. Но не забываем, что я — сторонник slow life, поэтому каких-либо сроков ответов не обещаю. Самые интересные вопросы станут основой для новых тем на форуме или записей в блоге.
Сразу предупреждаю: глупости, провокации, троллинг и тому подобное летит прямо в /dev/null.