Usb

USBデバイスプラグインでカスタムスクリプトを実行するにはどうすればよいですか?



How Run Custom Scripts Upon Usb Device Plug



解決:

このような行を次のファイルに入れます/etc/udev/rules.d:

カーネル== 'sd *'、ATTRS {vendor} == 'Yoyodyne'、ATTRS {model} == 'XYZ42'、ATTRS {serial} == '123465789'、RUN + = '/ pathto / script'

次のような句を追加します下のカスタムエントリパスを使用する場合は、NAME = 'subdir / mydisk%n'/ dev。



走るudevadm info -a -n sdbを使用して、照合できる属性を確認します(属性== '値';交換で作成された新しいエントリに対応する、ディスクに自動的に割り当てられたデバイス名によるsdbプラグを差し込むと/ dev)。使用できることに注意してください任意のATTRS句 スタンザ:任意のスタンザを選択できますが、ATTRS句はすべて同じスタンザからのものである必要があり、組み合わせて使用​​することはできません。あなたは混ぜることができます別のスタンザにリストされている他のタイプの節を含むATTRS節。


調べたディスク関連のルールの例については、/ lib / udev /rules.dを参照してください。 Ubuntuシステムでは、1つのルールファイルが環境変数を提供します独自のルールファイルで使用できるID_FS_UUID_ENC。



したがって、カスタムルールファイルを下に置きます/etc/udev/rules.d/foodevice.rules。数字が前に付いていないので、ついにudevによって実行されます。ところで、udevデーモンが監視しました/etc/udev/rules.dは、ファイルの変更時に再起動する必要がないような変更の場合。

の内容/etc/udev/rules.d/foodevice.rulesは次のとおりです。

ACTION == 'add'、KERNEL == 'sd * [!0-9]'、ENV {ID_FS_UUID_ENC} == 'FFFF-AAAF'、RUN + = '/ usr / bin / sudo -u juser / home / juser / path / script.sh '

(これは1つのルールです。udevには行継続メカニズムがないため、ENV句の後に新しい行を削除する必要があります)



udevによって開始されたプログラムはデーモンをブロックします。したがって、デーモンは長時間実行されるべきではありません。私はそれを介して解決しましたat-つまり、実際の作業を行うプロセスから切り離すことによって:

$ cat /home/juser/path/script.sh#!/ bin / sh echo〜 / path / mountcopystuff.sh |今今