macOS Ventura 13命令行自动化管理:定时开机与关机高效攻略
1. 为什么需要命令行定时管理macOS电源?
刚升级到macOS Ventura 13的时候,我发现原来在系统偏好设置里用鼠标点点就能设置的定时开关机功能突然不见了。作为一名经常需要远程连接服务器的开发者,定时开关机对我来说是刚需——既能让设备在非工作时间自动休眠省电,又能确保每天上班前电脑已经准备就绪。
经过一番摸索,我发现苹果把这个功能藏得更深了,需要通过终端命令行工具pmset来实现。这其实是个好事,因为命令行操作比图形界面更灵活强大。比如你可以:
- 设置工作日和周末不同的开关机时间
- 精确到秒级的控制
- 组合睡眠、关机和唤醒指令
- 通过脚本实现复杂条件判断
实测下来,用pmset命令设置的计划任务非常稳定可靠,我的Mac mini已经连续三个月准时在晚上11点关机,早上7:30自动唤醒,从没出过差错。
2. 准备工作:认识pmset命令
2.1 pmset是什么?
pmset是Power Management Set的缩写,它是macOS系统自带的电源管理工具。通过这个命令行工具,你可以控制所有与电源相关的设置,包括:
- 睡眠和唤醒时间
- 显示器关闭时间
- 硬盘休眠时间
- 电池供电时的行为
- 外接电源时的行为
在Ventura 13系统中,苹果把图形界面的定时开关机选项移除了,但pmset命令依然完好保留,而且功能更强大。
2.2 如何打开终端
使用pmset需要先打开终端:
- 点击屏幕右上角的放大镜图标打开Spotlight搜索
- 输入"终端"或"Terminal"
- 回车打开终端应用
或者通过Finder前往"应用程序→实用工具→终端"。
注意:修改系统电源设置需要管理员权限,所有pmset命令前都要加sudo,执行时会要求输入密码。
3. 基础命令详解
3.1 设置自动关机
最基础的定时关机命令格式如下:
sudo pmset repeat shutdown 星期代码 时间星期代码用一个特殊的字母组合表示:
- M:星期一
- T:星期二
- W:星期三
- R:星期四(因为Thursday以T开头,但T已被星期二占用)
- F:星期五
- S:星期六
- U:星期日(Sunday的S已被星期六占用)
例如,设置每天22:30自动关机:
sudo pmset repeat shutdown MTWRFSU 22:30:00如果只想在工作日(周一到周五)下午5:30关机:
sudo pmset repeat shutdown MTWRF 17:30:003.2 设置自动开机/唤醒
自动开机命令与关机类似,只是把shutdown换成wakeorpoweron:
sudo pmset repeat wakeorpoweron 星期代码 时间例如设置工作日早上8:00自动开机:
sudo pmset repeat wakeorpoweron MTWRF 8:00:003.3 设置睡眠时间
睡眠与关机的区别在于睡眠状态会保持当前工作状态在内存中,唤醒后可以快速恢复。设置睡眠时间的命令是:
sudo pmset repeat sleep 星期代码 时间比如让电脑每天晚上11点自动睡眠:
sudo pmset repeat sleep MTWRFSU 23:00:004. 高级用法与组合命令
4.1 查看当前计划任务
在设置之前,可以先查看当前已经设置的电源计划:
pmset -g sched这会显示所有定时唤醒、关机和睡眠的计划。例如输出可能是:
Repeating power events: wakeorpoweron at 8:00AM weekdays only shutdown at 11:00PM everyday4.2 组合设置开关机时间
最实用的功能是可以一条命令同时设置开机和关机时间,格式为:
sudo pmset repeat wakeorpoweron 星期代码 时间 shutdown 星期代码 时间例如设置工作日早上8:30开机,下午5:30关机:
sudo pmset repeat wakeorpoweron MTWRF 8:30:00 shutdown MTWRF 17:30:004.3 组合设置开机和睡眠时间
同样可以组合开机和睡眠时间:
sudo pmset repeat wakeorpoweron 星期代码 时间 sleep 星期代码 时间比如工作日早上9点开机,晚上10点睡眠:
sudo pmset repeat wakeorpoweron MTWRF 9:00:00 sleep MTWRF 22:00:004.4 清除所有计划任务
如果想取消所有定时任务,使用:
sudo pmset repeat cancel5. 实用场景与技巧
5.1 开发者的工作日计划
作为开发者,我通常这样设置:
sudo pmset repeat wakeorpoweron MTWRF 8:00:00 shutdown MTWRF 23:00:00工作日早上8点自动开机,晚上11点关机,周末保持关机状态。
5.2 家庭媒体中心设置
如果把Mac当作家庭媒体中心,可以这样设置:
sudo pmset repeat wakeorpoweron U 18:00:00 shutdown U 23:00:00每周日晚上6点自动开机(方便家人看电影),11点自动关机。
5.3 服务器定时维护
对于作为轻量级服务器的Mac,可能需要每天凌晨进行维护:
sudo pmset repeat wakeorpoweron MTWRFSU 3:00:00 shutdown MTWRFSU 4:00:00每天凌晨3点唤醒,4点关机,留出1小时运行维护脚本。
5.4 节假日特殊设置
遇到长假时,可以临时设置长期关机:
sudo pmset repeat cancel sudo pmset repeat shutdown MTWRFSU 23:00:00取消所有唤醒计划,只保留每天关机计划。
6. 常见问题与解决方案
6.1 为什么我的定时开机不生效?
可能的原因有:
- 电源适配器未连接 - Mac笔记本在电池供电时不会自动开机
- 使用了错误的星期代码 - 比如把星期四错写成T而不是R
- 时间格式错误 - 必须使用24小时制,格式为HH:MM:SS
6.2 如何设置分钟级精确控制?
pmset支持精确到秒的控制。比如设置每天9:15:30开机:
sudo pmset repeat wakeorpoweron MTWRFSU 9:15:306.3 能否设置不同日期不同时间?
目前pmset的repeat命令不支持单条命令设置不同时间,但可以通过多条命令实现。例如:
sudo pmset repeat wakeorpoweron M 8:00:00 sudo pmset repeat wakeorpoweron T 9:00:00这样周一8点开机,周二9点开机。
6.4 定时关机影响系统更新怎么办?
macOS系统更新通常需要关机安装。解决方法是在更新期间临时取消关机计划:
sudo pmset repeat cancel更新完成后再重新设置。
7. 安全注意事项
使用pmset命令需要特别注意:
- 确保关机前保存所有工作 - 定时关机不会提示保存
- 避免设置过于频繁的开关机 - 频繁电源切换可能影响硬件寿命
- 重要任务运行时临时取消关机计划
- 设置后先用
pmset -g sched确认计划是否正确 - 如果使用电池供电,注意自动开机功能可能不可用
我在实际使用中遇到过几次忘记保存工作就被关机的情况,后来养成了重要项目随时commit的习惯。另外,如果设置了自动开机,建议同时设置自动登录,否则唤醒后卡在登录界面也无法远程连接。
