OpenClaw 远程连接是如何让电脑不锁屏一直在工作的?
· 7 min read
OpenClaw 自己没有"防锁屏"功能——让远程电脑一直在线不被系统休眠干掉,靠的是 操作系统层面 的电源管理配置。
- 根本问题:macOS/Windows/Linux 默认都会在空闲时进入休眠,系统的电源管理策略会直接挂起进程,Gateway 连接中断,远程控制失效。
- macOS 解法:
sudo pmset -a sleep 0全局禁休 +caffeinate -s进程级防睡 + LaunchDaemon 系统级自启,三层叠加 才能保证锁屏后服务不掉。 - Windows 解法:电源计划设"从不睡眠"只是第一步,还要关混合睡眠、禁用 USB 选择性暂停、组策略禁用待机状态 S1-S3,否则 硬件省电策略会偷偷断网。
- Linux 解法:
systemctl mask sleep.target suspend.target从 systemd 层面禁掉休眠路径,配合 logind.conf 忽略合盖/电源键事件,GNOME 只关屏不睡眠。
- 关键区分:LaunchDaemon(系统级,开机即跑)≠ LaunchAgent(用户级,登出即停),远程无人值守必须用前者。
- 验证标准:锁屏 30 分钟后 Gateway 日志仍有新消息进来,
pmset -g | grep sleep全显示 0,才算配置成功。
问题在哪
你在公司台式机上部署了 OpenClaw Gateway,回到家想用手机通过飞书远程让 AI 跑个任务。消息发出去了,对面没反应——因为电脑在你离开两小时后自动休眠了。
这不是 OpenClaw 的 bug,是操作系统的电源管理策略在按预期工作:空闲 → 休眠 → 进程挂起 → 网络断开。所有远程控制工具都面临这个问题,OpenClaw 也不例外。
那怎么解决?答案分三层,从浅到深,缺一层都可能翻车。
第一层:关掉系统休眠
最直观的操作——告诉操作系统"别睡"。
macOS 上两行命令:
sudo pmset -a sleep 0 disksleep 0
sudo pmset -a hibernatemode 0 standby 0 autopoweroff 0
pmset -a 的 -a 意思是 all,即电池和电源适配器两种模式下都生效。把 sleep、disksleep、standby 全设为 0,系统就不会主动进入休眠。
Windows 上走图形界面:设置 → 系统 → 电源和电池 → 睡眠设为"从不"。但这只改了当前电源计划,切换计划(比如从"平衡"切到"节能")需要重新配置。
Linux(systemd) 上更彻底——直接 mask 掉休眠目标:
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
mask 的意思是"把这个 target 的启动路径替换为 /dev/null",任何程序试图触发休眠都会失败。比 disable 更暴力,disable 只是取消自启,mask 是让它根本不能被激活。