На Ubuntu 14.04 У меня длинный сценарий bash с простым правилом udev, который работает совершенно так:
ACTION=="change", SUBSYSTEM=="block", RUN+="/opt/script.sh"
В Ubuntu 16.04 все идет не так хорошо. Скрипт начинает работать, но затем его убивают до его завершения. Затем я попытался изменить мое правило udev, чтобы вызвать скрипт warapper, который отделит скрипт. Я попытался:
#!/bin/sh
nohup /opt/script.sh &
Тогда я попытался:
#!/bin/sh
/opt/script.sh | at now
Безрезультатно
Затем я попытался создать службу systemd ... [ ! d4]
ACTION=="change", SUBSYSTEM=="block", ENV{SYSTEMD_WANTS}=="justrunthescript.service"
/etc/systemd/system/justrunthescript.service
[Unit]
Description=Just run the script
[Service]
ExecStart=/opt/script.sh
В какой-то момент я должен запустить скрипт, но мой скрипт опирается на параметры udev, такие как $ ID_FS_TYPE которые не передаются таким образом.
Я думаю, что я хочу довольно просто, просто вставьте диск и запустите мой скрипт из правила udev и не убейте скрипт. Каков наилучший способ сделать это?