udev ルールは PROGRAM キーで期待どおりに機能しません。

udev ルールは PROGRAM キーで期待どおりに機能しません。

私のシステムはカーネル4.19がインストールされたDebian Busterです。私は以下のような単純なudevルールを持っており、Debian Jessieではうまくいきます。これで、同じルールが最新のディストリビューションには適用されないようです。

 KERNEL=="sd[a-z]1",SUBSYSTEM=="block",ACTION=="add|change",PROGRAM="/bin/lsblk --fs --noheadings -o FSTYPE $tempnode"

 RESULT=="ext4",SYMLINK+="working_stick"

このルールはDebian Jessieと現在のディストリビューション(Debian Buster)にも適用されます。 「udevadmトリガー」を手動で実行すると、このルールは正常に機能しますが、通常の操作シナリオではこのルールは機能しません。

私が何を見逃しているのかよくわかりません。エラーケースと成功事例のログを提供します。


udevルールファイルにシンボリックリンクがないことがわかったときのudevログ:

Oct 18 09:50:11 localhost systemd-udevd[28351]: sdb1: PROGRAM '/bin/lsblk --fs --noheadings -o FSTYPE /dev/sdb1' /etc/udev/rules.d/test.rules:19

Oct 18 09:50:11 localhost systemd-udevd[28351]: Starting '/bin/lsblk --fs --noheadings -o FSTYPE /dev/sdb1'

Oct 18 09:50:11 localhost systemd-udevd[28351]: Successfully forked off '(spawn)' as PID 30481.

Oct 18 09:50:11 localhost systemd-udevd[28351]: Process '/bin/lsblk --fs --noheadings -o FSTYPE /dev/sdb1' succeeded.

"udevadm Trigger" udevのログを手動で実行すると、シンボリックリンクが生成されることがわかります。

10月18日 11:20:20 ローカルホスト systemd-udevd[3758]: '/bin/lsblk --fs --noheadings -o FSTYPE /dev/sdb1'(out) 'ext4'****

Oct 18 11:20:20 localhost systemd-udevd[3758]: Process '/bin/lsblk --fs --noheadings -o FSTYPE /dev/sdb1' succeeded.

したがって、成功すると、コマンドの出力がRESULTに書き込まれたことを示す追加の行がログに表示されます。

ベストアンサー1

おすすめ記事