Linux shutdown 命令是系统中用于安全关机或重启的核心工具,它通过有序地通知所有登录用户、停止正在运行的进程,并同步文件系统来确保数据完整性和系统安全,相较于直接使用 reboot
或 halt
命令,shutdown
提供了更灵活的时间控制和更友好的交互提示,尤其适合多用户服务器环境,本文将从命令语法、核心功能、参数选项、使用场景及注意事项等方面进行详细解析,帮助用户全面掌握其用法。

命令基本语法与核心功能
shutdown
命令的基本语法结构为:
shutdown [选项] [时间] [警告信息]
时间
参数是关键,它决定了系统执行关机或重启的具体时机,支持多种时间格式;警告信息
为可选参数,用于向所有登录用户发送通知,提醒系统即将关闭,默认情况下,shutdown
命令会以 root
身份执行,普通用户需通过 sudo
获取权限。
核心功能包括:
- 安全关机:通过
shutdown -h now
立即关机,或指定时间延迟关机,确保所有进程正常终止。 - 重启系统:通过
shutdown -r now
立即重启,或结合时间参数实现定时重启。 - 取消计划任务:若已设置关机或重启计划,可通过
shutdown -c
取消,并通知所有用户。
时间参数的多种格式
shutdown
命令的时间参数支持灵活的格式定义,用户可根据需求选择不同的表达方式:

时间格式示例 | 说明 |
---|---|
now |
立即执行,无需额外时间延迟 |
+分钟数 |
相对时间,+5 表示 5 分钟后执行 |
hh:mm |
绝对时间(24小时制),23:30 表示当天 23:30 执行,若时间已过则默认次日 |
y |
结合 shutdown -h 或 shutdown -r 时,表示“昨天”(较少使用) |
shutdown +10 "系统将在10分钟后维护,请保存工作"
:10分钟后关机,并发送通知。shutdown -r 22:00 "定时重启,请退出登录"
:当天 22:00 重启系统。
常用参数选项详解
shutdown
命令通过参数选项控制关机/重启行为,以下是核心参数的说明及示例:
关机与重启控制
-h, --halt
:关机后停止系统,不切断电源(部分硬件可能自动断电)。
示例:shutdown -h now
-r, --reboot
:关机后自动重启系统。
示例:shutdown -r +30
-P, --poweroff
:强制切断电源(需硬件支持),等同于halt -p
。
示例:shutdown -P 02:00
时间与通知控制
-c, --cancel
:取消已计划的关机或重启任务。
示例:shutdown -c
(需在计划执行前操作,取消后会通知所有用户)-k, --no-wall
:仅发送警告信息,不实际执行关机/重启(用于测试通知功能)。
示例:shutdown -k +5 "测试通知"
-w, --wtmp-only
:仅写入关机日志(/var/log/wtmp
),不执行实际操作。
示例:shutdown -w now
其他选项
--help
:显示命令帮助信息。
示例:shutdown --help
--version
:显示命令版本号。
示例:shutdown --version
典型使用场景与示例
立即关机
适用于系统故障或维护前的紧急操作:
shutdown -h now # 立即关机
定时重启(维护窗口)
适用于服务器定期更新或配置生效后的重启:
shutdown -r +60 "系统将在1小时后重启,请保存数据" # 60分钟后重启,并发送通知
取消计划任务
若用户误操作或需求变更,需取消已设置的计划:

shutdown -c # 取消所有待执行的关机/重启任务
仅发送通知(测试)
在正式执行前,确认通知功能是否正常:
shutdown -k +2 "这是一条测试通知,系统不会实际关机"
指定绝对时间关机
适用于需要在特定时间(如深夜)执行维护的场景:
shutdown -h 03:30 "凌晨3:30关机维护,请提前退出"
注意事项与最佳实践
- 权限要求:
shutdown
需要root
权限执行,普通用户需通过sudo
调用,避免权限不足导致命令失败。 - 多用户环境:在服务器上使用时,务必通过
警告信息
参数通知所有用户,避免因突然关机导致数据丢失。 - 远程操作风险:通过 SSH 远程执行关机命令前,确保当前会话支持保持连接(如使用
nohup
或tmux
),或提前确认可物理访问服务器,避免“远程锁死”。 - 文件系统同步:
shutdown
会自动调用sync
同步磁盘数据,但用户仍需手动保存关键应用数据(如数据库、编辑器文件),避免意外中断。 - 替代命令对比:
halt
:立即停止系统,不通知用户,适用于单用户模式。reboot
:立即重启,无延迟和通知,适用于快速恢复场景。init 0/6
:通过系统运行级别关机/重启,老旧系统常用,新版本推荐shutdown
。
相关问答FAQs
问题1:执行 shutdown -h now
后,如何取消关机计划?
解答:若关机计划尚未执行(例如延迟关机),可通过 shutdown -c
命令取消,执行后会向所有登录用户发送“计划已取消”的通知,若关机命令已触发(如 now
),则无法取消,系统将正常关机。
问题2:shutdown
命令与 halt
、reboot
有什么区别?使用时如何选择?
解答:shutdown
的核心优势在于支持定时、通知和取消计划,适合多用户服务器环境,可避免数据丢失;halt
是立即停止系统,不通知用户,仅适用于单用户或紧急场景;reboot
是立即重启,无延迟和提示,适合快速重启测试,推荐原则:服务器维护优先用 shutdown
,紧急情况用 halt
/reboot
,单用户模式可酌情选择。