'OnFailureJobMode=' 所取的值在 systemd 单元文件中意味着什么

'OnFailureJobMode=' 所取的值在 systemd 单元文件中意味着什么

OnFailureJobMode=选项(在[Unit]systemd 单元文件部分下)采用以下值:

  • 失败
  • 代替
  • 不可逆转地替换
  • 隔离
  • 冲水
  • 忽略依赖关系
  • 忽略要求

它们都是什么意思?

答案1

系统单元(5),其中OnFailureJobMode=记载了:

指定 OnFailure= 中列出的单元如何排队。有关可能值的详细信息,请参阅 systemctl(1) 的 --job-mode= 选项。

这将我们带到 systemctl 的--job-modeswitch文档系统控制(1),其中清楚地写着:

当对新作业进行排队时,此选项控制如何处理已排队的作业。它采用“失败”、“替换”、“不可逆替换”、“隔离”、“忽略依赖性”、“忽略需求”或“刷新”之一。默认为“替换”,除非使用隔离命令(这意味着“隔离”作业模式)。

  • 如果指定“fail”并且请求的操作与挂起的作业冲突(更具体地说:导致已挂起的启动作业反转为停止作业,反之亦然),则导致操作失败。

  • 如果指定“替换”(默认值),则将根据需要替换任何冲突的挂起作业。

  • 如果指定了“replace-irreversible”,则操作与“replace”类似,但也将新作业标记为不可逆。这可以防止未来冲突的事务替换这些作业(甚至在不可逆转的作业仍处于待处理状态时排队)。仍然可以使用取消命令取消不可逆转的作业。

  • “isolate”仅对启动操作有效,并会在指定单元启动时导致所有其他单元停止。当使用isolate命令时,总是使用该模式。

  • 当新作业排队时,“flush”将导致所有排队作业被取消。

  • 如果指定“ignore-dependencies”,则此新作业的所有单元依赖性都将被忽略,并且操作将立即执行。如果通过,则不会拉入所通过单元的必需单元,并且不会遵守任何排序依赖性。这主要是管理员的调试和救援工具,不应由应用程序使用。

  • “ignore-requirements”与“ignore-dependencies”类似,但只会导致需求依赖关系被忽略,排序依赖关系仍然会受到尊重。

相关内容