
udevルールについてもっと知りたいので、単純なルールを実装しましたが、私にはうまくいきません。
/etc/udev/rules.d:
KERNEL=="sdb1"
ACTION=="add"
RUN+="~/test/exe.sh"
~/テスト/exe.sh:
#!/bin/bash
echo "USB plugged in" > ~/test/showup.txt
ファイルは.sh
実行可能で、フラッシュドライブの名前を確認しましたlsblk
。と呼ばれ、パーティションがsdb
ありますsdb1
。
別のチュートリアルを見つけましたが、エラーが見つかりませんでした。もしかしたら、私はArch Linuxを使っています。
答え1
udevルールはrootによって実行されます。
RUN+="~/test/exe.sh" は "/root/test/exe.sh" と同じですが、udev ルールは "~" を認識しないようです。パスを変更すると、この問題を解決できます。
"/usr/bin/exe.sh"にスクリプトを置く方が良いかもしれません。