ConditionPathExists =和ConditionPathExists =之间有什么区别? 在systemd中?

在Systemd中启动我的服务之前,我需要检查一个不存在的文件。 我在[单位]看到两个例子:

ConditionPathExists=!/tmp/abc 

 ConditionPathExists=|!/tmp/abc 

他们是一样的吗? 任何人都可以帮我解释一下吗?

有时您可以指定多个文件,如:

 ConditionPathExists=!/tmp/abc ConditionPathExists=!/tmp/abe 

现在,如果任何条件不满意,它不会启动服务。 就像和操作一样。

现在如果你使用:

 ConditionPathExists=|!/tmp/abc ConditionPathExists=|!/tmp/abe 

如果满足这些条件中的任何一个,则将运行该服务。

条件检查可以以管道符号(|)作为前缀,在这种情况下条件成为触发条件。 如果为一个单位定义了至少一个触发条件,那么如果至少有一个触发条件适用,并且所有的非触发条件

这就像是OR操作