udev不会正确执行规则

时间:2016-03-24 16:16:28

标签: rsync udev umount

udev没有正确运行我的bash脚本。

继承我的规则:

ACTION=="add", KERNEL=="sd*1", SUBSYSTEM=="block", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6544", RUN="/usr/local/bin/usb-bmw-in"    
ACTION=="remove", KERNEL=="sd*1", SUBSYSTEM=="block", ATTRS{idVendor}=="0930", ATTRS{idProduct}=="6544", RUN="/usr/local/bin/usb-bmw-out"

以下是执行的脚本:

#!/bin/bash
echo timer > /sys/class/leds/led1/trigger
rsync --delete-after -c --preallocate -r /media/NAS/Sync/Musik/BMW/ /media/24366EC6366E9916/
umount /dev/sdc1
echo default-on > /sys/class/leds/led0/trigger
echo none > /sys/class/leds/led1/trigger

脚本应点亮红色指示灯,表示其工作正常。然后它应该将我的汽车播放列表复制到usb棒并卸下设备。

完成后,它应该点亮绿色指示灯并关闭红色指示灯。

红色指示灯正常亮起,rsync命令也会被触发,但就是这样。 红色LED仍然亮着,设备仍然安装且绿色指示灯未打开。

当我手动运行脚本时,它的工作正常。

1 个答案:

答案 0 :(得分:1)

实际上通过在umount命令上方的底部移动两个echo命令并使用setsid在用户“Alives”所解释的setsid的后台shell中重新启动脚本来实现它的工作:

https://unix.stackexchange.com/a/79545