udev-Regel funktioniert nicht

udev-Regel funktioniert nicht

Ich versuche, eine Udev-Regel für ein USB-Laufwerk-Plugin zu schreiben. Ich möchte es zuerst mounten /mediaund dann das Skript ausführen /usr/local/bin/script.sh. Wenn ich das USB-Gerät einstecke, wird das Gerät mit dieser Regel nicht einmal gemountet. Wenn ich den Teil in RUN jedoch manuell in das Terminal eingebe, wird das Skript gemountet und ausgeführt.

In der Regeldatei steht:

ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh"

Ist dies die richtige Methode, um zwei Befehle im RUN-Abschnitt der Regel auszuführen?

Antwort1

Das ist nicht die richtige Art, zwei Befehle auszuführen. Der Matching-Teil Ihrer Regel gefällt mir auch nicht, aber ich werde ihn für dieses Beispiel so lassen, wie er ist. Sie könnten Folgendes tun:

ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/sh -c '/bin/mount -t auto /dev/%k /media/ && /usr/local/bin/script.sh'"

oder

ACTION=="add", KERNEL=="sd[a-z]*", RUN+="/bin/mount -t auto /dev/%k /media/", RUN+="/usr/local/bin/script.sh"

aber warum verschieben Sie den Befehl in Ihrem Fall nicht einfach mountin Ihr Skript?

verwandte Informationen