该OnFailureJobMode=
选项(在[Unit]
systemd 单元文件部分下)采用以下值:
- 失败
- 代替
- 不可逆转地替换
- 隔离
- 冲水
- 忽略依赖关系
- 忽略要求
它们都是什么意思?
答案1
在系统单元(5),其中OnFailureJobMode=
记载了:
指定 OnFailure= 中列出的单元如何排队。有关可能值的详细信息,请参阅 systemctl(1) 的 --job-mode= 选项。
这将我们带到 systemctl 的--job-mode
switch文档系统控制(1),其中清楚地写着:
当对新作业进行排队时,此选项控制如何处理已排队的作业。它采用“失败”、“替换”、“不可逆替换”、“隔离”、“忽略依赖性”、“忽略需求”或“刷新”之一。默认为“替换”,除非使用隔离命令(这意味着“隔离”作业模式)。
如果指定“fail”并且请求的操作与挂起的作业冲突(更具体地说:导致已挂起的启动作业反转为停止作业,反之亦然),则导致操作失败。
如果指定“替换”(默认值),则将根据需要替换任何冲突的挂起作业。
如果指定了“replace-irreversible”,则操作与“replace”类似,但也将新作业标记为不可逆。这可以防止未来冲突的事务替换这些作业(甚至在不可逆转的作业仍处于待处理状态时排队)。仍然可以使用取消命令取消不可逆转的作业。
“isolate”仅对启动操作有效,并会在指定单元启动时导致所有其他单元停止。当使用isolate命令时,总是使用该模式。
当新作业排队时,“flush”将导致所有排队作业被取消。
如果指定“ignore-dependencies”,则此新作业的所有单元依赖性都将被忽略,并且操作将立即执行。如果通过,则不会拉入所通过单元的必需单元,并且不会遵守任何排序依赖性。这主要是管理员的调试和救援工具,不应由应用程序使用。
“ignore-requirements”与“ignore-dependencies”类似,但只会导致需求依赖关系被忽略,排序依赖关系仍然会受到尊重。