要全面确认macos中所有定时关机任务,需分层检查:一、系统设置→电池/节能器→调度,查看图形化关机配置(需接电才生效);二、运行pmset -g sched查底层电源管理任务;三、用ls ~/library/launchagents/和sudo ls /library/launchdaemons/搜shutdown相关plist并sudo launchctl list验证加载状态;四、执行crontab -l、sudo cat /etc/crontab及sudo launchctl list | grep cron排查cron残留。

你需要在 macOS 终端里快速确认当前系统中所有已设置、正在生效或曾被注册过的定时关机任务,包括图形界面调度、pmset 命令配置、launchd 后台作业及可能残留的 cron 任务——不能只查一个地方,必须分层比对。
查看系统设置中配置的定时关机
这是最常被忽略但最直观的一处:系统设置里的“调度”功能会写入底层配置,但不显示在终端命令中。
打开「系统设置」→「电池」(MacBook)或「节能器」(iMac/Mac mini)→ 点击右下角「调度」按钮。
若看到「设定以下日期的睡眠或关机」已勾选且操作为「关机」,说明此处存在一个图形化定时关机任务;【该任务仅在 Mac 接通电源且未锁屏时才可靠触发】。
用 pmset 查看所有重复与单次定时关机
pmset 是 macOS 底层电源管理工具,它管理的关机任务独立于用户登录状态,优先级最高。
第一步:运行 pmset -g sched → 查看当前所有已注册的周期性或单次关机/唤醒任务。
第二步:重点识别含 shutdown 的行,例如:shutdown MTWRFSU 22:00:00 表示每天晚10点关机;shutdown "09/18/26 03:00:00" 表示2026年9月18日凌晨3点执行一次关机。
第三步:若输出为空,不代表没有任务——可能已被取消,也可能根本没设过;但只要有输出,就说明该任务已由系统守护进程接管并等待执行。
检查 launchd 中是否注册了关机 plist
有些用户或脚本会通过自定义 LaunchAgent 或 LaunchDaemon 实现关机,这类任务不会出现在 pmset 列表中,却能绕过电源策略强制执行。
方法一:检查用户级代理
运行 ls ~/Library/LaunchAgents/ | grep -i shutdown → 若返回 com.user.autoshutdown.plist 类似文件名,说明存在用户级关机任务。
方法二:检查系统级守护进程
运行 sudo ls /Library/LaunchDaemons/ | grep -i shutdown → 若有匹配结果,需进一步用 sudo launchctl list | grep shutdown 确认是否已加载。
【注意:/System/Library/Launch* 下的 Apple 自带关机相关任务(如 com.apple.powerd)不可修改,但必须纳入排查范围】。
排除 cron 残留关机指令
虽然 macOS 自 Catalina 起默认禁用 cron,但如果你曾手动启用过,它仍可能在后台悄悄执行关机命令,且完全脱离 launchd 和 pmset 的监控体系。
运行 crontab -l → 若输出中包含类似 0 23 * * * sudo shutdown -h now 的行,说明当前用户设置了 cron 关机任务。
再运行 sudo cat /etc/crontab 2>/dev/null → 若文件存在且内容含 shutdown 命令,说明系统级 cron 关机已配置。
最后运行 sudo launchctl list | grep cron → 若输出中 com.vix.cron 的 PID 是数字而非 -,表示 cron 守护正在运行,上述 crontab 条目实际有效。











