起動すると、process_queue
サービスConditionDirectoryNotEmpty=/unfinished_queue_jobs
が起動し、ディレクトリを消去して停止します。
サービスは、完了時に開始された場合、またはこの依存関係の条件が失敗した場合は直ちに開始する必要がありaccept_new_jobs
ます。process_queue
理想的には、ユニットファイルは何らかの方法で参照するprocess_queue
必要はありません(など)。accept_new_jobs
Before=
systemdを使用してこれらの依存関係を表現するための最良の方法は何ですか?
ベストアンサー1
失敗した条件やアサーションによってデバイスが「失敗」状態に移行することはありません。待機中の開始ジョブを実行するときに条件とアサーションを確認してください。注文の依存関係は依然として尊重されているため、そのユニットが正常にアクティブになったかのように別のユニットをインポートして注文し、ユニットが正常に起動した正確な瞬間に条件とアサーションが実行されるため、以前に注文した後にシステムの状態を確認できます。デバイスの初期化が完了しました。
[After= および Before=] は、Requires=、Wants=、Requisite=、または BindsTo= で構成される要件の依存関係とは無関係で直交です。 After= および Wants= オプションにデバイス名を含めるのが一般的なパターンです。この場合、リストされたデバイスは、これらのオプションで設定されたデバイスの前に起動されます。
だから私はこれを達成するためにAfter =とWants =を使うことができると思いました。テストしてみましょう。