systemd:如何无限制地停止启动作业

systemd:如何无限制地停止启动作业

有没有办法可以停止无限制配置的 systemd 启动作业?

我不是问在哪里可以重新配置限制 - 我想在等待时停止。

我没有另一个控制台可以进入系统。如果我按 Ctrl+Alt+Del,那么作业就会关闭。

我只是想停止等待这个在启动时出现问题的无限作业。

答案1

出于安全原因,可能无法在启动时停止 systemd 启动作业。由此邮政:

Q: how can you have control whilst booting? IIRC my keyboard ctrl+c break attempts do not work.

答:嗯,出于安全原因,您不能...我们不能允许在未经身份验证的情况下仅从屏幕更改启动过程...

如果运行“systemctl enable debug-shell”,您可以在 tty9 上打开调试 shell,该 shell 从最早启动时开始连续运行。但这当然只能在上次启动时完成。

正如上面线程中提到的,可能可以使用调试 shell(如果已启用),但这仅建议用于调试,而不是永久使用。来自系统文档:

早期调试外壳

您可以在启动过程的早期启用 shell 访问,以便使用各种 systemctl 命令依靠并诊断与 systemd 相关的启动问题。使用以下命令启用它:

systemctl enable debug-shell.service

或通过指定

systemd.debug-shell=1

在内核命令行上。

提示:如果您发现自己无法使用 systemctl 与正在运行的 systemd 进行通信(例如,从不同的引导系统进行设置时),您可以通过指定 --root= 来避免与管理器通信:

systemctl --root=/ enable debug-shell.service

一旦启用,下次启动时,您将能够使用 CTRL+ALT+F9 切换到 tty9并在启动过程的早期就有一个可用的 root shell。您可以使用 shell 检查服务状态、读取日志、使用 systemctl list-jobs 查找卡住的作业等。

警告:此 shell 仅用于调试!调试完启动问题后,不要忘记禁用 systemd-debug-shell.service。让 root shell 始终可用将存在安全风险。

还可以将 kbrequest.target 别名为 debug-shell.service 以根据需要启动调试 shell。这具有相同的安全隐患,但避免始终运行 shell。

相关内容