执行 sudo shutdown -k 可强制终止所有待执行关机任务,因 sudo shutdown -c 仅取消最后一次提交,无法清除重复或底层调度(如 pmset、快捷指令)触发的关机。

执行 sudo shutdown -c 后系统仍按时关机,说明取消指令未成功拦截已注册的关机任务,常见于任务被重复提交、权限失效或底层调度服务未响应。
确认当前是否有活跃的shutdown任务
打开“终端”,输入:
sudo shutdown -k
该命令会向系统发送“取消所有待执行shutdown”的信号,并强制终止正在等待的关机进程。若此前有多个 shutdown -h 命令被连续执行(比如误按回车两次),仅一次 -c 无法清除全部,而 -k 可清空整个队列。
检查是否被pmset重复关机任务覆盖
系统设置中启用的“调度关机”或通过 pmset repeat shutdown 设置的周期任务,与 shutdown 命令互不感知。
运行以下命令查看是否存在独立的pmset关机计划:pmset -g sched
若输出中包含 Shutdown 行(例如 Shutdown scheduled for Thu Sep 18 00:00:00 CST 2026),说明关机由电源管理子系统直接控制,shutdown -c 完全无效。
立即清除pmset关机任务
① 先取消所有重复调度:sudo pmset repeat cancel
② 再手动清除单次定时关机(如有):sudo pmset schedule cancel shutdown
③ 验证是否清空:pmset -g sched → 输出应为空或仅显示 Wake/PowerOn 项,不再出现 Shutdown。
排查快捷指令自动化干扰
如果使用“快捷指令”设置了个人自动化关机(例如触发条件为“特定时间”+运行AppleScript调用 osascript -e 'tell app "System Events" to shut down'),shutdown -c 对其完全无影响。
打开“快捷指令”应用 → 切换到“自动化”标签页 → 查看“个人自动化”列表 → 找到含“关机”字样的条目 → 向左滑动并点击“删除”。
防止后续误触发的关键操作
执行 sudo shutdown -c 前,务必先运行:ps aux | grep shutdown
若返回结果中存在 shutdown -h 进程,说明任务仍在内存中排队;此时必须用 sudo shutdown -k 强制踢出,否则 -c 仅作用于最新一次提交,旧任务照常执行。【这是唯一能确保彻底终止所有shutdown等待状态的操作】


















