Обеспечение полной информации udev на дочерних устройствах при запросе родительского

RemainAfterExit=trueуже должен помочь. Вы уверены, что compile-app.serviceдействительно останавливается/перезапускается, когда вы останавливаете/перезапускаете другое устройство?

Вы также должны добавить compile-app.serviceк Afterиз run-app.service. На данный момент между двумя службами нет отношения порядка, поэтому они будут запускаться параллельно. Помните, что Wants/Requires/Conflictsне подразумевает никакого упорядочения, и аналогично Before/Afterне подразумевает никакой зависимости.

0
16.10.2019, 10:30
1 ответ

После дополнительных исследований, которые указали мне на использование blkidв udev правила (см. e.g. это ArchLinux -Вики-статья , к сожалению, доступна только на немецком языке ), я узнал об этом, позвонив

blkid -o udev -p /dev/sdXn

вместо

udeavdm info /dev/sdXn

внутри запускаемого сценарияsystemd-можно получить полную информацию даже о дочерних устройствах USB-накопителя, чье правило «добавить» обрабатывается.

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

Опция -o udevпросто служит для форматирования вывода способом, аналогичным вызову udevadm, хотя это не 100% замена -в качестве начальных меток идентификатора вывода udevadm(, такие как E:, P:и т. д. )здесь отсутствуют.

-1
28.01.2020, 03:11

Теги

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