依赖于条件单元的服务排序

依赖于条件单元的服务排序

启动时,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= 来实现这一点。我会测试一下。

相关内容