Linux:如何注销、重启和关机
要结束 Linux 中的当前 shell,可以使用 exit;要重启系统,使用 sudo systemctl reboot;要关机,使用 sudo systemctl poweroff。注销只影响当前会话,而重启和关机也会影响服务器上的其他用户和服务。
执行前检查
本文中的重启和关机示例基于使用 systemd 的 Linux。立即执行的命令可能会影响未保存的工作和正在运行的服务,因此请保存工作、通知其他用户,并在维护时间内执行。在服务器上,请检查备份及对服务的影响。
如果您通过 SSH 连接,命令将在您连接的服务器上执行,而不是在您的电脑上执行。以下命令有助于验证目标。
hostname
date
who
hostname 显示当前主机名,date 显示服务器的当前时间和时区,who 显示登录记录中显示的用户列表。仅凭名称无法完全识别服务器,因此还需与管理工具信息交叉检查。远程服务器在重启时会断开 SSH 连接,关机后可能无法直接开机,因此请提前检查控制台或电源管理路径。
退出当前 shell
要退出当前 shell,请执行以下命令。
exit
当在 SSH 会话的最后一个 shell 中运行时,它通常会关闭远程连接。如果你处在嵌套 shell 中,请先返回外层 shell。logout 可以在退出登录 shell 时使用,但在典型的非登录 shell 中可能不起作用。注销并不会关闭系统本身,正在进行的任务是否继续取决于会话和任务设置。
立即重启或关机
在 systemd 系统上,以下命令请求重启。执行时服务会立即开始停止,因此请先确保目标正确。
sudo systemctl reboot
要关闭系统并切断电源,请使用以下命令。
sudo systemctl poweroff
根据环境的不同,管理权限可能需要使用sudo或单独的身份验证。虚拟机或云服务器的电源状态和重启方式可能会因管理平台的策略而有所不同。重启后,请重新连接并检查必要的服务是否正常运行。halt 停止系统,而 poweroff 关闭电源,它们的含义不同,因此请选择适合您用途的命令。
安排和取消重启或关机
您可以使用 shutdown 安排操作。以下命令安排在10分钟后重启。
sudo shutdown -r +10
-r 是重启,+10 是从当前时间起 10 分钟后。要在 10 分钟后关闭电源,请使用 -P。
sudo shutdown -P +10
你也可以使用 24 小时格式通过 HH:MM 指定具体时间。例如,要在服务器时间 23:30 安排重启,请运行以下命令。
sudo shutdown -r 23:30
在运行之前,请检查服务器时间和时区,并确保所需时间尚未过去。根据不同的实现和版本,已经过去的时间的处理可能有所不同,有些版本可能会立即开始关机。输入计划命令会影响系统,因此不要在生产服务器上仅为测试而运行它。
要取消尚未开始的计划关机,请执行以下命令。
sudo shutdown -c
取消适用于待处理的系统关机,可能属于其他管理员,因此请先检查。这不是一个用于撤销已经开始的即时重启或关机的命令。在一些最近版本的 systemd 中,你可以使用 shutdown --show 查看待处理的关机,但某些版本可能没有此选项。有关详细行为,请查阅你系统的 man shutdown 和 systemd 关机文档 。
仅发送通知和故障排除
systemd 的 shutdown -k 向已登录用户发送通知,而不实际关机或重启。例如,以下命令会发送一条带有时间的消息。
sudo shutdown -k +10 "Maintenance notice"
通知的接收方式可能会因用户会话和系统设置而异,因此重要的工作公告也应通过其他渠道传达。-k 并不是实际的计划关机。
- 权限错误: 请检查 sudo 权限和系统的认证策略。
- 命令或选项不同: 由于行为可能因发行版和初始化系统而异,请检查
man shutdown和man systemctl。 - 重启后连接失败: 等待足够时间,然后从管理控制台检查电源状态、网络、SSH 和关键服务状态。




