如何使用 systemd 在文件最后一次修改后运行程序?

如何使用 systemd 在文件最后一次修改后运行程序?

我想在某个特定文件的最后一次修改之后运行程序。该程序不应与其自身同时运行。如果在程序运行时修改了该文件,则应再次运行该程序。如果多次修改该文件,则不应多次运行该程序。

此设置主要可以用 systemd 单元建模。.service具有 和 的单元Type=oneshot不会RemainAfterExit=no与自身同时运行。它可以用.path配置了 的单元激活PathModified=...,它会将多个修改合并为一个激活。到目前为止一切顺利。如果在单元运行时修改了文件,则该修改将变成一个激活,并且由于单元已在运行,因此此激活将被丢弃。因此,程序将不会再次运行。

是否有满足所有相关属性的变体?是否有其他更好的方法?

相关内容