udevルールが機能しない

udevルールが機能しない

USB ドライブ プラグイン用の udev ルールを記述しようとしています。まず にマウントし/media、次に でスクリプトを実行したいと思います/usr/local/bin/script.sh。USB を挿入しても、このルールではデバイスはマウントされません。ただし、ターミナルに RUN の部分を手動で入力すると、マウントされてスクリプトが実行されます。

ルールファイルには次のように書かれています:

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

これはルールの RUN セクションで 2 つのコマンドを実行する正しい方法ですか?

答え1

2 つのコマンドを実行するのは正しい方法ではありません。私もあなたのルールの一致部分が気に入りませんが、この例ではそのままにしておきます。次のようにすることができます。

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

または

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

しかし、あなたの場合は、なぜmountコマンドをスクリプト内に移動しないのですか?

関連情報