udev systemd call @remove не работает, но запускает скрипты openSuse Leap42.3

Если вы не используете wait(), родительский процесс может завершиться до того, как дочерний получит шанс запуститься. К тому времени, когда дочерний процесс вызовет getppid(), родительский завершится, поэтому дочерний будет принят init. В обычной реализации Unix, PID init равен 1, поэтому вы ожидаете, что он скажет мой родитель - процесс 1, когда это произойдет. Но, по-видимому, VirtualBox меняет это.

Если вы используете wait(), это заставляет родителя ждать завершения дочернего процесса перед выходом. Таким образом, ребенок никогда не станет сиротой.

0
14.12.2017, 12:32
1 ответ

RUN+="/usr/bin/systemctl umount_extern_backup.service", как указано в комментарии выше, работает.

Проверил SYSTEMD_WANTSсвойство устройства здесь а они пишут:

Note that systemd will only act on Wants dependencies when a device first becomes active. It will not act on them if they are added to devices that are already active

Это объясняет, почему правило addзапускало службу systemd, а правило remove— нет.

2
28.01.2020, 02:32

Теги

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