ConditionPathExists =和ConditionPathExists = |之间的区别是什么在systemd?

时间:2016-05-19 03:53:07

标签: linux redhat systemd

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

ConditionPathExists=!/tmp/abc

ConditionPathExists=|!/tmp/abc
它们是一样的吗?有人可以帮我解释一下他们是不同的吗?

1 个答案:

答案 0 :(得分:14)

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

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

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

现在,如果您使用:

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

如果满足任何这些条件,它将运行该服务。

  

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

就像OR操作