必须禁用休眠(S4),因休眠会断电挂起所有用户态服务(如NavicatMonitorService和navicatcmd.exe),导致任务根本无法启动、无日志无报错;需执行powercfg /h off、禁用快速启动、组策略启用“防止启用休眠状态”,并用Windows任务计划+“唤醒时运行”触发器兜底。

Navicat 16 的计划任务在电脑休眠后中断,不是配置没生效,而是根本没机会启动——休眠(S4)会切断所有用户态进程的运行环境,navicatcmd.exe 和它依赖的 NavicatMonitorService 全部被强制终止,连日志都不会留下。
休眠状态直接杀死任务执行上下文
Windows 休眠不是暂停,是把内存镜像写入硬盘后断电。所有用户登录会话、桌面环境、服务进程全部销毁。而 navicatcmd.exe 必须在用户会话或服务会话中加载配置、读取 profile、建立数据库连接——这些前提在休眠唤醒后都不存在,系统不会自动恢复,也不会补跑错过的任务。
- “睡眠设为从不”无效:睡眠(S3)和休眠(S4)是两个独立电源状态,禁用前者不等于禁用后者
-
powercfg /a输出里若还显示Hibernate,说明休眠功能仍处于启用状态 - 混合睡眠(Hybrid Sleep)或快速启动(Fast Startup)残留,也可能导致关机实际走休眠流程
任务计划程序无法绕过休眠限制
即使你已在 Windows 任务计划程序中正确配置了 navicatcmd.exe、勾选“不管用户是否登录都要运行”,也无法改变一个事实:休眠期间 Task Scheduler 服务本身也被挂起,任务队列清空,触发器失效。
- 任务历史记录里会出现空白段,而不是错误码——因为根本没有触发动作发生
- 不要依赖“唤醒时运行”选项:该选项只对睡眠(S3)有效,对休眠(S4)完全无响应
- 组策略中若未锁定,“防止启用休眠状态”设为“未配置”,系统更新后可能重新开启休眠
彻底禁用休眠并验证状态
必须从系统底层关闭休眠能力,不能只靠 GUI 设置。
- 以管理员身份运行命令提示符,执行:
powercfg /h off - 进入「设置 → 系统 → 电源和睡眠 → 其他电源设置 → 选择电源按钮的功能 → 更改当前不可用的设置」,取消勾选「启用快速启动」
- 运行
gpedit.msc,导航至「计算机配置 → 管理模板 → 系统 → 电源管理 → 睡眠状态」,将「防止启用休眠状态」设为「已启用」 - 重启后再次运行
powercfg /a,确认输出中不再出现Hibernate字样
替代方案:用系统级唤醒事件兜底
如果你无法完全禁用休眠(比如企业策略限制),就别再指望原生调度器。改用 Windows 原生机制,在系统从任何低功耗状态恢复时立即触发备份:
- 新建任务,触发器选「当计算机从休眠或睡眠状态唤醒时」
- 操作中调用
navicatcmd.exe,参数保持不变:--profile="MyProfile" --task="DailyBackup" - 务必勾选「不管用户是否登录都要运行」,并确保「起始于」字段填的是绝对路径,例如:
C:\Program Files\PremiumSoft\Navicat Premium 16\ - 该方式不保证“准时”,但能确保“不断档”——只要机器醒过来,就立刻补执行一次
真正容易被忽略的点在于:很多人反复检查 Navicat 配置、任务参数、防火墙规则,却从不确认 powercfg /a 的实时输出。休眠开关一旦松动,所有上层调度逻辑都会失效,而且静默得毫无痕迹。


















