start reboot.target和reboot之间有两个记录在案的差异。但start reboot.target是由ctrl-alt-del.target触发的。
ctrl-alt-del.target省略--job-mode=replace-irreversibly重要吗?在什么情况下,这会导致不同的行为?为什么它包含在systemctl reboot中?
man systemctl重新启动arg关闭并重新启动系统。这主要等同于
start reboot.target --job-mode=replace-irreversibly,但也向所有用户打印了一条墙消息。
man systemd.special每当Control+Alt+Del按在控制台上时,systemd就会启动这个目标。通常,这应该被别名(符号链接)到reboot.target。
发布于 2017-07-27 20:52:25
在排队新作业时,此选项控制如何处理已排队的作业。它需要“失败”、“替换”、“替换-不可逆转”、“孤立”、“忽略-依赖”、“忽略-需求”或“刷新”。默认为“替换”,除非使用隔离命令,这意味着“隔离”作业模式。如果指定了" fail“,并且请求的操作与挂起的作业冲突(更具体地说:导致已挂起的开始作业被反转为停止作业,反之亦然),则导致操作失败。如果指定了“替换”(默认),任何冲突的挂起的作业都会在必要时被替换。如果指定了“替换-不可逆转”,就像“替换”一样操作,同时也将新的工作标记为不可逆转。这样可以防止将来发生冲突的事务替换这些作业(甚至在不可逆转的作业仍未完成时被排队)。仍然可以使用cancel命令取消不可逆转的作业。
这表明了一种实际效果。假设您“将单元挂到睡眠状态逻辑中”,使用sleep.target将它们拉进来。你的钩子单位没有DefaultDependencies=no,所以他们依赖sysinit.target.Conflict和shutdown.target。
如果您运行systemctl start reboot.target,然后立即运行systemctl start suspend.target,那么您的钩子单元似乎会停止shutdown.target。现在systemd-reboot.service有了Requires=shutdown.target,所以也应该停止/取消它。(umount.target不应取消)。
我已经证实了这方面的行为和报告它是系统问题跟踪器的一个缺陷。之间的差异。
https://unix.stackexchange.com/questions/381739
复制相似问题