如果 systemctl 重新启动失败,如何使用 systemctl 重新启动服务器?

如果 systemctl 重新启动失败,如何使用 systemctl 重新启动服务器?

我尝试重新启动我的 CentOS 7 服务器,但它给出了荒谬的错误消息。

作为 root(当然):

# systemctl reboot
Authorization not available. Check if polkit service is running or see debug message for more information.
Failed to start reboot.target: Connection timed out
See system logs and 'systemctl status reboot.target' for details.
Exit 1

是否polkit需要检查是否root有权限重启机器???如果是这样,为什么?

# systemctl status reboot.target
● reboot.target - Reboot
   Loaded: loaded (/usr/lib/systemd/system/reboot.target; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:systemd.special(7)
Exit 3

我需要启用reboot目标吗?为什么默认情况下会禁用此功能?

也许这会起作用?

# systemctl start reboot.target
Authorization not available. Check if polkit service is running or see debug message for more information.
Failed to start reboot.target: Connection timed out
See system logs and 'systemctl status reboot.target' for details.
Exit 1

好,强制执行,然后:

# systemctl --force reboot
Authorization not available. Check if polkit service is running or see debug message for more information.
Failed to execute operation: Connection timed out
Exit 1

而且服务器还开着。

答案1

如果 Zach Sanchez 的答案不起作用(我在 CentOS 7 下遇到了Failed to start reboot.target: Connection timed out奇怪systemctl --force reboot的情况),那么可以通过 SSH 作为 root 来完成内核崩溃重启,如下所示:

# echo s > /proc/sysrq-trigger
# echo u > /proc/sysrq-trigger
# echo b > /proc/sysrq-trigger

这三个命令分别同步所有已挂载的文件系统,以只读模式重新挂载所有已挂载的文件系统,然后立即重新启动机器。

在最后一个命令之后,预计不会有任何响应,因为内核会立即重新启动计算机。更多细节这里等等维基百科

正如@LunarShaddow 和其他人指出的那样,不需要s提前一秒。b

答案2

尽管看起来很奇怪,但尝试跑步

systemctl --force --force reboot

它出现在我进行的几次搜索中。这可能与 DBus 服务重新启动的问题有关。

无法重启。缓慢且超时。 无法启动 reboot.target:连接超时

答案3

由于我无法在保罗的回答中发表评论,所以我在这里写下我的评论。

来自内核文件:

当您无法关闭时,reboot(b) 是很好的选择。但您还应该首先同步和卸载。当您无法关闭时,reboot(b) 是很好的选择。但您还应该首先同步和卸载。

当您的系统被锁定时,sync(s) 非常有用,它允许您同步磁盘,并且肯定会减少数据丢失和 fscking 的机会。请注意,直到您看到屏幕上出现“确定”和“完成”后,同步才发生。 (如果内核确实处于冲突中,您可能永远不会收到“确定”或“完成”消息......)

umount(u) 的用途基本上与sync(s) 相同。当我的系统锁定时,我通常会同步,卸载(u),然后重新启动(b)。它为我节省了很多 fsck 的时间。同样,直到您看到屏幕上出现“确定”和“完成”消息后,卸载(重新安装只读)才发生。

所以 FMHO,Paul 的答案可以简化为 's' 'u' 'b',并且您可能需要在每次输入后等待一段时间。

相关内容