Я мигрирую существующее правило udev, которое привязано к действию изменения блочного устройства и запускает данный сценарий.
SUBSYSTEM=="block", ENV{DEVNAME}=="/dev/sr0", ACTION=="change", RUN+="/usr/local/bin/script"
в этой конфигурации udev передал переменные среды, связанные с аппаратным устройством, такие как ID_CDROM_MEDIA-0
и ID_FS_LABEL
. С тех пор я обновил правило udev, чтобы использовать systemd для запуска службы при изменении оборудования.
SUBSYSTEM=="block", ENV{DEVNAME}=="/dev/sr0", ACTION=="change", TAG+="systemd", ENV{SYSTEMD_WANTS}=="drive-change.service"
служебный файл systemd:
[Unit]
Description=changes to dvd drive
[Service]
Type=oneshot
ExecStart=/usr/local/bin/script
[Install]
WantedBy=multi-user.target
на этом этапе служба запускается на события изменения но переменные среды, передаваемые командой RUN в udev, не передаются в выполнение службы.
можно ли передать среду из udev в среду выполнения systemd или мне нужно явно передать параметры?