Systemd.path:用逻辑 OR 组合多个条件

Systemd.path:用逻辑 OR 组合多个条件

手册中systemd.path说“条件”可以组合,但没有说如何组合。

我猜这是一个逻辑“与”,如果你想做逻辑“或”,你应该使用多个path触发同一目标。我对吗?

编辑:作为一个例子,我有一个一条路径由定时器触发一定时间后,它会触发A.服务那个空的a队列文件夹。

  • 如果队列不为空时一条路径被触发了,我想要A.服务开始;DirectoryNotEmpty做这个。

  • 如果文件添加到队列在运行期间,我也希望它启动;PathModified监控文件的添加/删除,但仅在运行期间内进行,如果在运行期间之外添加文件,则不会触发该服务。

所以最后,我希望它能够运行队列启动时目录不为空,或者队列在运行期间被修改。

我怎样才能做到这一点?

答案1

在每个单独的条件之前使用垂直管道。

来自免费桌面手册页:

如果指定了多个条件,则如果所有条件都适用(即应用逻辑 AND),则将执行该单元。条件检查可以以管道符号 (|) 为前缀,在这种情况下,条件将成为触发条件。如果为一个单元定义了至少一个触发条件,那么如果至少一个触发条件适用并且所有非触发条件都满足,则该单元将被执行。

相关内容