udev
挿入および取り外し時に処理する外部USBハードドライブを設定しています(まだインストールされていません)。これまで、/etc/udev/rules.d/10-local.rules
ファイルにディスクの追加と削除を記録するための2つの新しいルールが作成されました。
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/echo 'inserted lacie' >> /home/herman/udev_file"
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="remove", RUN+="/bin/echo 'removed lacie' >> /home/herman/udev_file"
デーモンを起動しudevd
、ハードドライブを数回再挿入しましたが、/home/herman/udev_file
まったく作成されません。ルールでは、私はコマンドのキーを使用しました。udevadm info -a -n /dev/sdb
問題のハードディスクです。私がここで何を間違っているのか?ディスクが検出されており、mount
正常に検出できます。助けてくれてありがとう。
答え1
udev
にログメッセージを出力し/var/log/messages
ますが、デフォルトではエラーのみを記録し、目的の操作を実行しませんがエラーも発生しないコマンドを設定することがあります。リダイレクトは>>
シェルによって処理され、udevはシェルを介してコマンドを実行しないため、実際にバイナリを実行して/bin/echo
引数を渡します'inserted lacie' >> /home/herman/udev_file
。より多くの情報を記録するためにudevを変更すると(行の編集/etc/udev/udev.conf
と追加udev_log="info"
)、コマンドが実行され、出力は次のようになります。'inserted lacie' >> /home/herman/udev_file
個人的には、再起動せずに編集できるようにしたいタスクを実行する短いシェルスクリプトを作成することを好みますudev
が、それを使用/bin/sh -c
してコマンドを実行してリダイレクトを処理することもできます。
SUBSYSTEM=="block", ATTRS{model}=="2AS", ACTION=="add", RUN+="/bin/sh -c '/bin/echo inserted lacie >> /home/herman/udev_file'"