在 macOS 系统中,用户可以通过命令行工具实现自动关机功能,这一功能在定时任务、批量处理或特定场景下(如下载大文件、系统维护后)非常实用,本文将详细介绍 macOS 自动关机命令的使用方法、参数配置、进阶技巧及注意事项,帮助用户灵活掌握这一功能。

基础关机命令:shutdown
shutdown 是 macOS 系统中最常用的关机命令,默认需要管理员权限(通过 sudo 执行),其基本语法为:
sudo shutdown [参数] [时间]
立即关机
若需立即关机,可直接使用 -h 参数(halt 的缩写,表示停止系统):
sudo shutdown -h now
执行后,系统会提示“Shutdown NOW”,所有用户将收到通知,并在 60 秒后强制关机(可通过 -h 后的 +分钟数 延迟执行)。
定时关机
通过 +分钟数 可指定关机延迟时间,10 分钟后关机:

sudo shutdown -h +10
系统会提示“System going down for halt in 10 minutes”,期间可通过 sudo shutdown -c 取消关机指令。
指定具体时间关机
若需在特定时间(如 22:30)关机,可直接输入时间(24小时制):
sudo shutdown -h 22:30
若当前时间超过指定时间,系统会默认在第二天该时间执行。
其他关机相关命令
除 shutdown 外,macOS 还提供 halt 和 poweroff 命令,功能类似但适用场景略有差异。

halt 命令
halt 主要用于停止系统运行,但不会切断电源(部分硬件可能仍通电):
sudo halt
与 shutdown -h now 效果相近,但提示信息较少,适合无通知需求的场景。
poweroff 命令
poweroff 会彻底切断电源(支持硬件的系统),关机动作更彻底:
sudo poweroff
若需延迟关机,需结合 shutdown 的参数,sudo poweroff -h +5(部分 macOS 版本可能不支持,建议优先使用 shutdown)。
进阶参数与配置
shutdown 命令支持多种参数,可满足个性化需求,以下是常用参数的详细说明:
| 参数 | 作用 | 示例 |
|---|---|---|
-h |
关机后停止系统(halt) | sudo shutdown -h now |
-r |
关机后重启(reboot) | sudo shutdown -r +5 |
-s |
进入睡眠模式(sleep) | sudo shutdown -s now |
-c |
取消待执行的关机/重启指令 | sudo shutdown -c |
-k |
发送关机通知但不实际关机(测试用) | sudo shutdown -k +1 |
-f |
快速重启(跳过磁盘检查,仅限重启时) | sudo shutdown -rf now |
睡眠模式与关机的区别
-s 参数使系统进入睡眠状态而非关机,适用于短时间休眠(如午休),但需确保设备接通电源,否则可能因电量耗尽强制关机。
结合 at 命令实现定时任务
若需在非当前时间执行关机(如凌晨 3 点),可结合 at 命令:
echo "sudo shutdown -h now" | at 03:00
需确保 at 服务已启用(默认开启),可通过 sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist 激活。
图形化替代方案(适合不熟悉命令行的用户)
若不习惯使用命令行,可通过 macOS 自带的“自动操作”(Automator)或“终端”的“计划任务”实现定时关机:
使用“自动操作”创建关机脚本
- 打开“自动操作”,选择“应用程序”→“运行 Shell 脚本”;
- 输入命令
sudo shutdown -h +10(10 分钟后关机); - 保存为应用程序,双击运行即可触发关机。
通过“终端”设置计划任务
使用 launchd 创建定时任务(需编写 .plist 文件),例如在 /Library/LaunchDaemons/ 目录下创建 com.user.shutdown.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.shutdown</string>
<key>ProgramArguments</key>
<array>
<string>shutdown</string>
<string>-h</string>
<string>now</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>22</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
</dict>
</plist>
保存后,通过 sudo launchctl load /Library/LaunchDaemons/com.user.shutdown.plist 加载任务,系统会在每天 22:30 自动关机。
注意事项
- 权限问题:所有关机命令均需管理员权限,执行时需输入用户密码。
- 保存工作:定时关机前,建议保存所有未保存的文档,避免数据丢失。
- 取消指令:若需取消待执行的关机,尽快运行
sudo shutdown -c,距离关机时间越近,取消难度越大(尤其是进入关机倒计时后)。 - 系统版本差异:不同 macOS 版本(如 Monterey、Ventura)对
shutdown参数的支持可能略有不同,可通过man shutdown查看当前版本的详细帮助。
相关问答FAQs
Q1: 如何取消已设置的定时关机?
A1: 若通过 shutdown 命令设置了定时关机,可直接在终端输入 sudo shutdown -c,系统会提示“Shutdown cancelled”,取消所有待执行的关机/重启指令,若已进入关机倒计时(如屏幕显示“System going down in 1 minute”),需尽快执行取消命令,否则可能无法中断。
Q2: 定时关机后,如何确保应用程序正常关闭?
A2: macOS 在执行关机前会向所有应用程序发送“终止”信号,但部分程序可能因未正确响应导致数据丢失,建议:
- 关机前手动保存工作;
- 使用
osascript命令检测并强制关闭未保存的程序(如osascript -e 'tell application "Safari" to quit'); - 对于关键任务,可通过
launchctl设置关机前的预处理脚本,确保程序正常退出。
