![udevルールが機能しない](https://rvso.com/image/1395270/udev%E3%83%AB%E3%83%BC%E3%83%AB%E3%81%8C%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%AA%E3%81%84.png)
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
コマンドをスクリプト内に移動しないのですか?