web-dev-qa-db-ja.com

ConditionPathExists =とConditionPathExists = |の違いは何ですかsystemdで?

Systemdでサービスを開始する前に、ファイルが存在しないことを確認する必要があります。 [ユニット]に2つのケースがあります。

ConditionPathExists=!/tmp/abc

そして

ConditionPathExists=|!/tmp/abc

彼らは同じですか?それらが異なるかどうか誰かが私に説明するのを手伝ってもらえますか?

11
Thao Nguyen

次のような複数のファイルを指定する場合があります。

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

これで、いずれかの条件が満たされない場合、サービスは開始されません。それは、操作のようなものです。

今使用する場合:

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

これらの条件のいずれかが満たされると、サービスが実行されます。

条件チェックの前にパイプ記号(|)を付けることができます。その場合、条件はトリガー条件になります。ユニットに少なくとも1つのトリガー条件が定義されている場合、少なくとも1つのトリガー条件が適用され、すべての非トリガー条件が適用されると、ユニットが実行されます。

OR操作のようなものです

20
khrm