udev、追加のルールが実行されるのを防ぐ方法は?

udev、追加のルールが実行されるのを防ぐ方法は?

デバイスで追加のルールの実行を停止するようにudevに指示することは可能ですか(もしそうなら)。

udevファイルの名前がアルファベット順に指定される一般的な順序/シーケンスがあることを知っています。したがって、以前のルールが追加の実行を防止することが*.rules論理的であるようです(つまり、後で発生するルールの順序で)。

udevを介してUSBメモリメディアがあり、対応するRUN +スクリプトがインストールされているとします。これで、デバイスを再インストールしようとする(そして失敗する可能性がある)システムの他のルールが気に入らない!

答えを容易にするために例を挙げます。ルールを次のように設定します。

#30.myusb.rulesファイルから
ACTION=="追加", SUBSYSTEM=="USB", ATTRS{idVendor}=="1f75", ATTRS{idProduct}=="0902", RUN+="/bin/mount.30.1f75.0902.sh"

今私はこれが欲しいもっと遠く(31> 30から)ルールは発生しません。

#31.myusb.rulesファイルから
ACTION=="追加", SUBSYSTEM=="USB", ATTRS{idVendor}=="1f75", ATTRS{idProduct}=="0902", RUN+="/bin/mount.31.1f75.0902.sh"

製造用「フィルター」ウデブ2つのルールが適用されるかどうかはわかりますが、31.myusb.rulesルールが発生しないことを願っています。

30.myusb.rulesそれで、擬似コードが提案する方法で調整できる方法を探しています。

#30.myusb.rulesファイルから
ACTION=="追加", SUBSYSTEM=="USB", ATTRS{idVendor}=="1f75", ATTRS{idProduct}=="0902", RUN+="/bin/mount.30.1f75.0902.sh"
ACTION=="追加",SUBSYSTEM=="USB",ATTRS{idVendor}=="1f75",ATTRS{idProduct}=="0902",STOP_FURTHER_RULES_WITH_THIS_FILTER

ベストアンサー1

GOTOルールを適用した直後にラベルに移動するためにルールで使用できます。ラベルがルールの最後にある場合は、後続のすべてのルールをスキップします。

だから30.myusb.rules

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1f75", ATTRS{idProduct}=="0902", RUN+="/bin/mount.30.1f75.0902.sh", GOTO="myusb_end"

そして最後に31.myusb.rules

LABEL="myusb_end"

またはを使用して、最後にロードされたファイル()をGOTO="very_end"挿入します。LABEL="very_end"/etc/udev/rules.d/zzzzzzzz.rules

おすすめ記事