我正在使用 Debian 8(“jessie”)。我需要在维护模式下运行一些服务,因此使用从图形模式更改为救援模式,
systemctl isolate rescue.target
但是当我尝试使用返回默认模式时,
systemctl isolate graphical.target
它无法返回并出现以下错误。
系统日志:
Sep 20 05:24:22 test systemd[1]: Starting Login Service...
Sep 20 05:24:22 test systemd[1]: systemd-logind.service: Start operation timed out. Terminating.
Sep 20 05:24:22 test systemd[1]: Failed to start Login Service.
Sep 20 05:24:22 test systemd[1]: systemd-logind.service: Unit entered failed state.
Sep 20 05:24:22 test systemd[1]: systemd-logind.service: Failed with result 'timeout'.
Sep 20 05:24:22 test systemd[1]: systemd-logind.service: Service has no hold-off time, scheduling restart.
Sep 20 05:24:22 test systemd[1]: Stopped Login Service.
Sep 20 05:24:22 test systemd[1]: Starting Login Service...
它无限循环。难道是我工作方式不对?请任何人指导我继续。
答案1
在 Ubuntu 16.04 中重新启动 D-Bus 守护进程后,我遇到了同样的情况。
我猜想循环通过救援目标会导致基本上相同的问题,一个新的 D-Bus 守护进程正在运行,但系统中的某个地方有对旧守护进程的引用。
我通过“重新启动”systemd 从登录管理器重新启动循环中恢复
# systemctl daemon-reexec
(注意:不支持正式重新启动 D-Bus 守护进程,因为所有正在运行的 D-Bus 服务也需要重新启动,以便使它们注册到新的 D-Bus 守护进程。这需要手动完成。命令busctl
显示所有注册的 D-Bus 服务,因此如果您提前运行它,您将获得需要重新启动的服务列表。)
答案2
您尝试过“init 5”吗?我想这与“systemctl”相同。或者“运行级别 5”并重新启动...
在 RedHat 中有一个配置文件,您可以设置默认运行级别,如果您可以找到该文件并对其进行编辑。我相信“/etc/inittab”是您可以设置默认运行级别的地方。
您可以进一步查看“systemctl”手册页并搜索“isolate”以查看是否有任何有用的内容。
不确定这些是否有帮助,但这就是我解决这个问题的方法。
//注意:这不是问题的正确答案,应该作为评论发布,但由于缺乏声誉,我无法这样做。我很抱歉。