ファイルが存在する場合のシステムサービスの遅延

ファイルが存在する場合のシステムサービスの遅延

ConditionPathExists=ファイルが存在します(ファイルが存在する場合はサービスが失敗するのではなく)、デバイスが何も見つからなかった場合は、サービスの開始を遅らせたいと思います。文書

システム化は技術的に可能ですか?どのように?

ベストアンサー1

私が知っている限り、ConditionPathExists=デバイスを「失敗」のままにしません。ConditionPathExists=このユニットをスキップしてください。

ユニットファイルには複数のCondition… = と Assert… =設定を含めることもできます。デバイスが起動する前に、systemdは指定された条件が真であることを確認します。そうでない場合、デバイスの起動は(ほとんど自動的に)スキップされます。エラー状態のため、デバイスは「失敗」状態に切り替わりません。

ExecStartPre=ファイルの存在に応じてデバイスの起動を遅らせる方法の1つは、thenRestart=on-failureおよびtest filesを使用することですRestartSec=。これにより、デバイスは障害状態になりますが、成功するまで再試行します。たとえば、

[Service]
# Should cause failure if file exists
ExecStartPre=/usr/bin/test ! -f afile
ExecStart=mycommand

# Restart on failure. Keep trying to create backup.
RestartSec=10m
Restart=on-failure

おすすめ記事