当通过重命名另一个文件覆盖文件时,systemd 路径不再触发服务

当通过重命名另一个文件覆盖文件时,systemd 路径不再触发服务

我有一个设置,其中一个systemd.path单元监视特定文件:

[Unit]
Description=Watch config file for changes

[Path]
PathChanged=/path/to/my/config.file

[Install]
WantedBy=multi-user.target

其中.service规范具有相同的文件名保存扩展名。

  • 直到 之前systemd 239-68.0.2,创建 的临时副本config.file、修改它并将mv其重命名 () 回config.file会触发.service.
  • 有了systemd 239-74.0.1,就不再这样了。我必须在编辑器中显式打开它(例如nano),但是服务已经被触发当我打开文件时,不仅是在保存或关闭时。什么cp工作是通过将临时文件复制 () 回 来覆盖文件config.file
  • PathChanged无论使用或 ,行为都是相同的PathModified
  • touch使用文件来更新时间戳也不会触发该服务。

这种行为改变是有意为之吗?我怎样才能回到“旧”行为 - 这是我更喜欢的,因为通常一个脚本会对 执行多次更改config.file,并且我不希望在每次修改时都触发该服务。

“手动”复制 ( cp) 并删除临时文件当然是一种选择,但需要在多个位置进行更改,而我希望避免这种情况。

相关内容