udev 无法正确执行规则



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

脚本应该亮起一个红色led,表示它正在工作。然后它应该将我的汽车播放列表复制到U盘并卸载设备。

完成后,它应该点亮一个绿色led,然后关闭红色led。

红色指示灯正常亮起,rsync命令也会启动,但仅此而已。红色LED仍然亮着,设备仍然安装,绿色LED尚未打开。

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

实际上,通过将底部的两个echo命令移动到umount命令上方,并在具有setsid的后台shell中重新启动脚本,正如stackexchange:上的用户"Alives"所解释的那样

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

相关内容

  • 没有找到相关文章

最新更新