◆

Mac pmset 定时唤醒命令详解

2025-11-10 14:110

pmset 定时唤醒命令

基本命令

设置定时唤醒

# 每天指定时间唤醒
sudo pmset repeat wakeorpoweron MTWRFSU HH:MM:SS

# 每周指定日期和时间唤醒
sudo pmset repeat wakeorpoweron <星期> HH:MM:SS

星期参数说明

  • M - 星期一 (Monday)
  • T - 星期二 (Tuesday)
  • W - 星期三 (Wednesday)
  • R - 星期四 (Thursday)
  • F - 星期五 (Friday)
  • S - 星期六 (Saturday)
  • U - 星期日 (Sunday)

常用示例

单个定时唤醒

# 每天 8:39 唤醒
sudo pmset repeat wakeorpoweron MTWRFSU 08:39:00

# 工作日(周一到周五)8:00 唤醒
sudo pmset repeat wakeorpoweron MTWRF 08:00:00

# 周末(周六和周日)9:00 唤醒
sudo pmset repeat wakeorpoweron SU 09:00:00

# 每周一 7:30 唤醒
sudo pmset repeat wakeorpoweron M 07:30:00

多个定时唤醒的限制

重要:pmset repeat 只能设置一个重复的唤醒事件。

根据 macOS 手册说明:

"Note that you may only have one pair of repeating events scheduled - a 'power on' event and a 'power off' event."

这意味着:

  • ❌ 不支持在一条命令中设置多个唤醒时间
  • ❌ 如果设置多个时间,只会保留最后一个
  • ✅ 只能设置一个唤醒时间和一个关机时间

如果需要多个定时唤醒,可以使用以下替代方案:

  1. 使用 launchd:创建多个 plist 文件,每个文件设置一个定时唤醒
  2. 使用 SleepWatcher:配合 launchd 实现多个定时任务
  3. 使用第三方工具:如 Keyboard Maestro、Power Manager 等

查看当前设置

# 查看所有电源管理设置(包括定时唤醒)
pmset -g

# 只查看定时唤醒设置
pmset -g sched

取消定时唤醒

# 取消所有定时唤醒
sudo pmset repeat cancel

其他相关命令

# 查看当前电源状态
pmset -g

# 查看睡眠/唤醒历史
pmset -g log | grep -i "wake\|sleep"

# 立即进入睡眠(测试用)
pmset sleepnow

# 设置网络唤醒(WOL)
sudo pmset -a womp 1  # 启用
sudo pmset -a womp 0  # 禁用

注意事项

  1. 需要管理员权限:设置定时唤醒需要使用 sudo
  2. 时间格式:使用 24 小时制,格式为 HH:MM:SS
  3. 星期组合:可以组合多个星期,如 MTWRF 表示周一到周五
  4. 只能设置一个:pmset repeat 只能设置一个重复的唤醒事件,不支持多个时间点
  5. 替换设置:如果之前已设置定时唤醒,新命令会替换之前的设置
  6. 取消设置:使用 sudo pmset repeat cancel 取消所有定时唤醒

多个定时唤醒的替代方案

如果需要设置多个定时唤醒时间,可以使用以下方法:

方案 1:使用 launchd(推荐)

创建多个 plist 文件,每个文件设置一个定时唤醒:

# 创建第一个定时唤醒(8:00)
cat > ~/Library/LaunchAgents/com.wake.0800.plist <<EOF
<?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.wake.0800</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/pmset</string>
        <string>schedule</string>
        <string>wakeorpoweron</string>
        <string>$(date -v+1d '+%m/%d/%y') 08:00:00</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>8</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>
EOF

# 加载服务
launchctl load ~/Library/LaunchAgents/com.wake.0800.plist

方案 2:使用 SleepWatcher + launchd

结合 SleepWatcher 监控唤醒事件,使用 launchd 设置多个定时任务。

💬留言板0

还没有留言,来发表第一条吧~

PAGE LOAD / LIVEMac pmset 定时唤醒命令详解加载中