2016-03-24 12 views
2

udev führt mein Bash-Skript nicht korrekt aus.udev wird die Regel nicht korrekt ausführen

Heres meine Regel:

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" 

Und hier ist das Skript, das ausgeführt wird:

#!/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 

Das Skript führte ein rotes leuchten sollte, was darauf hinweist, dass seine Arbeiten. Dann sollte es meine Auto-Playlist auf den USB-Stick kopieren und das Gerät aushängen.

Wenn es fertig ist, sollte es eine grüne LED aufleuchten und die rote ausschalten.

Die rote LED leuchtet richtig, der rsync Befehl wird ebenfalls ausgelöst, aber das ist es. Die rote LED ist noch an, das Gerät ist noch montiert und die grüne LED ist nicht eingeschaltet.

Wenn ich das Skript manuell ausführen, funktioniert es gut.

Antwort

0

die tatsächlich durch Bewegen der zwei Echobefehl am Boden über dem Abhängungsbefehl und neu aufgelegt das Skript in einem Hintergrundschale mit setsid arbeitet, wie durch den Benutzer „Alives“ auf Stack erläutert:

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