デバイスで追加のルールの実行を停止するように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
答え2
使用する必要があります:=変える+=。
# in file 30.myusb.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="1f75", ATTRS{idProduct}=="0902", RUN:="/bin/mount.30.1f75.0902.sh"
~から男性ページ、
"=" Assign a value to a key. Keys that represent a list are reset and only this single value is assigned. "+=" Add the value to a key that holds a list of entries. ":=" Assign a value to a key finally; disallow any later changes.