web-dev-qa-db-ja.com

(ubuntu 16.04).rulesファイル/etc/udev/rules.d/がうまくいかないようです

達成したいこと:

特定のSDカードが挿入されたときにスクリプトを自動的に実行しようとしています。

事実:

a。実行する予定のスクリプトは/home/vivek/Desktop/Message.shにあり、次のスクリプトが含まれています。その権限は、実行可能ファイルとして設定されています。

#!/bin/sh
echo "Card is now inserted"

b。 /etc/udev/rules.dの下で、私のルールファイルは10-local.rulesと呼ばれ、次のルールが含まれています。

ENV{ID_FS_UUID}=="C097-C12A", ACTION == "add", RUN+="/bin/sh /home/vivek/Desktop/Message.sh"

c。 SDカードのENV {ID_FS_UUID}は、次のようにudevadmによって検出されます。

enter image description here

d。 /etc/udev/rules.d/内の私のルールファイルは、下の写真の 'udevadm test'で検出されたように処理されています。

enter image description here

問題:SDカードを挿入すると、正常にマウントされます。しかし、私のスクリプトは決して実行されません!どんな助けでもありがたいです。

乾杯

3
Vivek

問題は、ルールファイル10-local.rulesが実行リストの中で早すぎることかもしれません。名前を95-local.rulesに変更し、ルールをSudo udevadm control --reloadで再ロードすると(システムで必要な場合)、さらに成功する可能性があります。 udevからの出力は決してないので、スクリプトのechoはファイルに対するものである必要があることに注意してください。

udevadm infoで始まるE:によって示される値は、以前のルールによって設定される可能性があるENV{}プロパティであるため、ルールはできるだけ遅くする必要があります。

1
meuh