Linuxマシンにデバイスを接続したときにスクリプトを実行したい。たとえばxinput
、特定のドライブのマウスまたはバックアップスクリプトで実行します。
私はこれに関する多くの記事を見てきましたが、最近ではこことここにあります。しかし、私はそれを機能させることができません。
少なくともある種の応答を取得しようとするいくつかの簡単な例を次に示します。
/etc/udev/rules.d/test.rules
#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
/usr/local/bin/test.sh
#!/usr/bin/env bash
echo touched >> /var/log/test.log
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
echo ${DEVICE} >> /var/log/test.log
fi
ルールフォルダは監視されてinotify
おり、すぐにアクティブになります。キーボード、マウス、タブレット、メモリースティック、USBドライブをつなぎ続けていますが、何もありません。ログファイルは変更されていません。
さて、少なくとも何かが機能していることを知る最も簡単な方法は何でしょうか?機能していないものから作業するよりも、機能しているものから作業する方が簡単です。
3.5.0-23-generic
ます。
udevadm trigger
新しいルールを適用するためにデバイスを実行または接続しましたか?