在Systemd中启动服务之前,我需要检查一个文件不存在。我在[单元]中看到两个案例:
ConditionPathExists=!/tmp/abc
和
ConditionPathExists=|!/tmp/abc
它们是一样的吗?有人可以帮我解释一下他们是不同的吗?
答案 0 :(得分:14)
有时您指定多个文件,如:
ConditionPathExists=!/tmp/abc
ConditionPathExists=!/tmp/abe
现在,如果不满足任何条件,则不会启动服务。就像和操作一样。
现在,如果您使用:
ConditionPathExists=|!/tmp/abc
ConditionPathExists=|!/tmp/abe
如果满足任何这些条件,它将运行该服务。
在这种情况下,条件检查可以使用管道符号(|)作为前缀 条件成为触发条件。如果至少有一个触发 条件是为一个单位定义的,那么如果在,则执行单位 至少有一个触发条件适用于所有 非触发条件
就像OR操作