我试图通过监视/sys/class/net/eth0/carrier_up_count
系统文件的更改来在插入某些以太网电缆时重新启动 systemd 服务。
我尝试创建一个 systemd 路径服务:
[Path]
PathModified=/sys/class/net/eth0/carrier_up_count
Unit=restart-other-service.service
但是,虽然我可以看到carrier_up_count
插入电缆时确实发生了变化,但该路径服务永远不会被触发。
我认为发生这种情况是因为 systemd 路径服务实际上监视文件何时打开和关闭以进行写入,并且文件/sys/
始终打开(我可以看到文件的最后修改时间戳不会改变,即使文件的内容发生了变化) 。
我还尝试使用 systemd 套接字服务ListenSpecial=/sys/class/net/eth0/carrier_up_count
,但该服务失败:
Got unexpected poll event (0x9) on socket.
Failed with result 'resources'.
有没有办法让 systemd 监视 中文件的更改/sys/
?我想我可以创建一个定期读取目标文件的 cronjob,但感觉应该有更好的方法。