私のシステムはカーネル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に書き込まれたことを示す追加の行がログに表示されます。