mac无法原生实现每4小时自动关机,但可通过launchd创建循环任务(需手动新建plist文件并正确配置权限)、pmset配合脚本模拟定时(实际仅单次设置,需额外机制循环)或快捷指令+重复提醒(仅提示,不强制关机且依赖唤醒状态)。

你想让Mac每隔4小时就自动关机一次,避免长时间运行过热或忘记手动关闭——macOS原生不支持“间隔式”定时关机,但可通过终端命令组合实现等效效果:用shutdown设置首次关机,再用launchd创建循环任务,在每次关机前重新调度下一次。
用launchd创建每4小时重复关机任务
这一步必须用文本编辑器新建plist文件,不能直接复制粘贴到终端执行;路径和权限出错会导致任务完全不触发。
第一步:打开“终端”,输入以下命令创建任务配置目录(若已存在则无提示):
mkdir -p ~/Library/LaunchAgents
第二步:用nano编辑器新建一个plist文件:
nano ~/Library/LaunchAgents/com.user.hourly-shutdown.plist
第三步:在nano界面中,逐行输入以下内容(注意缩进和大小写,【Label值必须与文件名一致】,否则加载失败):
第四步:按 Control + O 保存 → 回车确认文件名 → Control + X 退出nano。
第五步:加载并启用该任务:
launchctl load ~/Library/LaunchAgents/com.user.hourly-shutdown.plist
launchctl start com.user.hourly-shutdown
用pmset配合脚本模拟4小时循环
这个方法绕开launchd的权限限制,但需要你手动触发一次初始化。它本质是“每次关机前,立刻预设4小时后的下一次关机”,适合不想长期后台驻留进程的用户。
方法一:一次性设置(推荐)
打开终端,运行以下命令:
echo '#!/bin/bash\nsudo pmset repeat cancel\nsudo pmset repeat shutdown MTWRFSU $(date -v+4H +"%H:%M:%S")' > ~/shutdown-loop.sh && chmod +x ~/shutdown-loop.sh && ~/shutdown-loop.sh
方法二:手动分步执行(便于排查)
先创建脚本:
touch ~/shutdown-loop.sh && chmod +x ~/shutdown-loop.sh
再向脚本写入内容:
printf '#!/bin/bash\nsudo pmset repeat cancel\nHOUR=$(date -v+4H +"%%H")\nMIN=$(date -v+4H +"%%M")\nSEC=$(date -v+4H +"%%S")\nsudo pmset repeat shutdown MTWRFSU ${HOUR}:${MIN}:${SEC}' > ~/shutdown-loop.sh
最后执行:
~/shutdown-loop.sh
【注意:pmset的repeat不支持动态间隔,上述命令实际只设置一次4小时后关机,需配合其他机制形成循环】
用快捷指令+重复提醒替代方案
如果你只是想“每4小时收到一次关机提醒”,而非强制关机,这个方法最安全、无需密码、不依赖登录状态——但它不会真正执行关机,仅弹窗提示。
打开“快捷指令”应用 → 点击右上角“+” → 选择“自动化” → 点击“创建个人自动化”。
选择“特定时间”作为触发条件 → 设定首次提醒时间(如09:00)→ 开启“重复” → 在“重复频率”中选择“每4小时” → 点击“下一步”。
点击“添加操作” → 搜索“显示通知” → 输入标题“该关机了”,正文“点击确认将执行关机” → 再点“添加操作” → 搜索“关机” → 选择它 → 点击“下一步” → 关闭“运行前询问”以静默关机,或保持开启获得二次确认。
此自动化会在每4小时整点触发,但【仅在Mac已唤醒且你已登录时生效;若当时处于睡眠状态,本次触发将被跳过】。











