Linux 服务器重启与关机方法详解
作为系统管理员,服务器的重启与关机是日常维护中不可或缺的操作。 这可能是为了执行诸如操作系统补丁之类的定期维护,也可能是因为硬件故障需要关闭系统进行维修。
Linux 系统提供了多种不同的方式来实现服务器的重启或关机。正常运作的系统应该能响应任何命令,而出现问题的服务器可能需要强制重启。请务必注意,由于重启系统属于管理任务,对于运行关键进程的多用户系统或服务器而言,重启或关机可能具有破坏性,因此大多数命令需要超级用户权限或使用 sudo 命令以获取相应权限才能成功执行。
本文将介绍一些可以帮助你执行 Linux 系统重启/关机操作的方法。
图形界面操作
如果你的 Linux 系统使用了图形桌面环境,如 Gnome、KDE、Mate 或 XFCE 等,你通常可以在系统菜单或应用程序菜单中找到一个电源按钮。这个按钮会提供注销、重启、休眠或关机等操作。具体可用选项可能会因所使用的发行版、桌面环境和操作系统版本而略有不同。但你肯定能在菜单中找到与电源相关的设置,以便更改系统的电源状态。
例如,在我的 Ubuntu Mate 桌面环境中,我可以在屏幕右上角的电源菜单中找到关闭选项。
选择“关闭…”选项后,会弹出一个对话框,其中包含多个选项,如暂停、重启、取消和关闭。你可以点击相应的按钮来重启或关闭系统,或者取消操作返回桌面环境。
虽然不同发行版和桌面环境提供的图形界面和选项可能略有差异,但请放心,你总能找到一个可以改变系统电源状态的选项。使用图形界面,只需在电源菜单中点击几下即可完成操作。
使用 systemctl 命令
在以 systemd 作为 init 系统的 Linux 机器上,你可以使用 systemctl
命令来重启设备。
$ sudo systemctl start reboot.target
你也可以直接使用 systemctl
命令及其相关选项,例如重启:
$ sudo systemctl reboot
若要关机,可以使用以下 systemctl
命令:
$ sudo systemctl shutdown
若要停止系统,则使用:
$ sudo systemctl halt
使用 shutdown 命令
shutdown
命令可以用来关闭和重启 Linux 系统。要立即重启系统,请使用:
$ sudo shutdown -r now
或者,在不等待的情况下关闭系统,使用 -h
或 -P
标志:
$ sudo shutdown -P now
我们可以在 shutdown
命令中添加延迟,以便在指定的时间间隔后重启/关闭系统。例如:
$ sudo shutdown -r 10
要在不要求硬件关闭电源的情况下暂停系统,可以使用 -H
标志:
$ sudo shutdown -H now
如果只指定 shutdown
命令,系统将在一分钟后安排关机。若要在特定时间关机,请使用:
$ sudo shutdown 22:30
在许多情况下,当系统出现故障时,它会向登录用户的控制台广播一条消息。如果想在此广播中添加自定义消息,可以将消息与 shutdown
命令一起指定:
$ sudo shutdown 23:00 "Powering off system for maintenance...save your work"
若要取消预定的关机,可以使用 -c
标志:
$ sudo shutdown -c
在某些系统中,shutdown
命令会在后台调用 systemctl
来实现所需的重启/关机操作。
使用 reboot 命令
要优雅地重启系统,你还可以使用 reboot
命令(可能需要使用 sudo
)。
$ sudo reboot
若要使用 reboot
命令关闭系统,请使用 -p
标志:
$ sudo reboot -p
要强制重启(对于不响应正常重启命令的系统),可以尝试 -f
标志:
$ sudo reboot -f
使用 halt 命令
要暂停系统,你可以简单地使用 halt
命令:
$ sudo halt
使用 poweroff 命令
要关闭系统,你可以选择使用 poweroff
命令:
$ sudo poweroff
使用 init 命令
对于不在 systemd 上运行的系统,init
(或 telinit
)命令提供了更改系统运行级别的选项。若要使用 init
重启系统,可以使用:
$ sudo init 6
类似地,要停止系统,可以使用以下 init
命令:
$ sudo init 0
使用 init
调用特定的运行级别会导致系统的 init 进程以特定顺序执行一系列初始化脚本,以确保系统达到所需的运行级别。运行级别 6 定义为重启,而运行级别 0 定义为暂停系统。
使用电源按钮
对于在台式机或笔记本电脑上运行的 Linux 系统,默认情况下,按下电源按钮可以使系统进入睡眠状态或通过发送关机信号将其关闭。你可以从系统的电源设置中调整此选项。但如果正常命令不起作用,它通常应作为最后的选择。
对于运行 Linux 的远程服务器,电源按钮通常会关闭系统电源。然而,位于远程数据中心的用户可以通过各自服务器供应商提供的远程无人值守管理 CLI/GUI 工具来重启或关闭电源。
使用 Alt + SysRq 组合键
对于无响应或冻结的系统,很难使其进入重启或关机状态。当你没有其他选择并且作为最后的手段时,可以尝试按 Alt + PrintScreen + 一系列键来立即重启系统。这可能不是首选或推荐的选项,但可以作为最后的手段使用。
永远记住,使用此方法可能会导致数据丢失和损坏,就像任何其他非正常、强制重启或关机选项一样。请务必遵循备份和冗余的最佳实践,并在使用此选项时要小心。
要使此选项起作用,它应该已在 Linux 内核中启用。可以使用以下命令进行检查:
$ cat /proc/sys/kernel/sysrq
输出 1 表示其完全启用,而大于 1 的数字表示部分启用某些功能。若要显式启用它,可以使用:
$ sudo echo “1” > /proc/sys/kernel/sysrq
要使用此方法重启系统,请按住 Alt + SysRq (PrintScreen),然后在每个键之间间隔几秒钟后依次按以下键:
R E I S U B
或在最后按 O 而不是 B 来关机:
R E I S U O
以下是这些按键的含义:
- R:将键盘从原始模式切换到 XLATE 模式
- E:向除init以外的所有进程发送SIGTERM信号
- I:向除init以外的所有进程发送SIGKILL信号
- S:同步所有挂载的文件系统
- U:将所有已挂载的文件系统重新挂载为只读
最后,B 或 O 的含义如下:
- B:立即重启系统,不卸载分区或同步
或者
- O:立即关闭系统,不卸载分区或同步
总结
以上介绍了多种重启或关闭 Linux 系统的方法。从简单的图形界面操作到相对复杂的终端命令,你可以选择适合你的方法。对于由于某种原因而死机的系统,我们也讨论了强制重启或关机的方法,虽然这不是理想的方式,但在极少数情况下是必要的。
在使用本文中讨论的命令时务必谨慎,因为它们会影响系统的状态,并且在企业服务器环境中可能会影响多个用户和服务。请务必查看本文中建议的命令手册页,以了解更多信息及其提供的各种选项。
在此处了解如何配置 WAS 以在关机期间停止询问密码。