ドライブがスタンバイモードに入ったときに通知を受け取るには、UDEVをどのように使用しますか?

ドライブがスタンバイモードに入ったときに通知を受け取るには、UDEVをどのように使用しますか?

OS LiteがインストールされているRaspberry Pi 4と一部のディスクドライブがUSBポートに接続されています。また、ドライブがスタンバイモードに入ったときに実行したいPythonスクリプトもあります。 「/etc/udev/rules.d」に「99-hdd-standby.rules」というファイルを作成し、その中に次の内容を追加しました。

ACTION=="change", DEVNAME=="*/sd[a-z]", ATTR{state}=="active/idle", RUN+="/usr/bin/python3 /home/marus/hdd_power.py act %k"
ACTION=="change", DEVNAME=="*/sd[a-z]", ATTR{state}=="standby", RUN+="/usr/bin/python3 /home/marus/hdd_power.py stb %k"

ファイルを保存してudevサービスを再起動しました。ただし、ハードディスクがスタンバイ状態になっていると、Pythonスクリプトは実行されません。スクリプトにエラーがありません。手動で実行すると通知が届きます。

その後、この単純なルールを使用してこれが機能していることを確認しました。

ACTION=="change", SUBSYSTEM=="usb", RUN+="/bin/echo 'USB device state changed' >> /home/marus/udev_log.txt"

USBデバイスが接続または切断されたら、ファイルに書き込む必要があります。しかし、やはり効果はありませんでした...

トリガーするルールを作成できません。何が起こっていますか?

修正する:

私はこのルールを試してみました。

SUBSYSTEM=="block", ACTION=="add", RUN+="/usr/local/bin/trigger.sh"

...実際には、ハードドライブを接続または切断するとスクリプトが実行されます。これも確認されましたudevadm monitor。ただし、ドライブをスタンバイモードに切り替えると、udevadm モニターでイベントは発生しません。したがって、ドライブがスタンバイモードに入ったときにudevを使用して通知を受け取ることはできないと思います。

他のアイデアがあれば教えてください。

ベストアンサー1

おすすめ記事