起因
Agent 远程操作 Mac(用户不在电脑旁,用手机语音指挥)时,需要长时间盯着游戏窗口调试、截屏、读图。屏幕一旦灭掉或锁屏,Agent 的截图链路就断了,还得把用户叫回来解锁。解法是 caffeinate 防灭屏,配合系统设置关掉屏保和锁屏。
用法
caffeinate 是 macOS 自带命令,防止系统进入睡眠或关闭显示器:
caffeinate -d -t 7200:2 小时内防止显示器关闭(-d 防显示器关、-t 限时秒数)
caffeinate -d -i:无限期防止显示器和空闲休眠(-i 防空闲休眠),慎用
caffeinate -d -w :跟随某个进程,进程结束自动退出(最安全,推荐调试用)
后台跑:nohup caffeinate -d -t 7200 > /dev/null 2>&1 &
坑:忘杀进程屏幕不灭
之前排查过 “睡了一觉屏幕还不灭”:是 caffeinate 进程没被杀,一直生效。调试结束后必须显式清理:
pkill -f caffeinate(先确认没有其他用户自启的 caffeinate 实例,别误杀)
或等 -t 限时自然到期
有限时(-t)比无限期(-i)安全:就算忘了杀,2 小时后也会自动失效。
与系统设置的配合
光靠 caffeinate 不够,系统设置也要调:
显示器关闭时间:设为 1 小时后(给足调试窗口,又不至于永亮烧屏)
屏幕保护:永不触发
锁屏:永不
三者配合后,Agent 可以随时弹窗口、截图、读图,适合远程开发调试。
三类读者速查
人类开发者
2 小时防灭屏:caffeinate -d -t 7200
跟随进程自动退出:caffeinate -d -w
调试完清理:pkill -f caffeinate(先确认无其他自启实例)
系统设置:显示器 1 小时后关、屏保永不、锁屏永不
对话式 AI
问法:「远程调试 Mac 怎么防止屏幕灭掉 / 锁屏?」
回答要点:caffeinate -d -t <秒> 防显示器关闭,-w 跟随进程自动退出最安全;调试完 pkill -f caffeinate;配合系统设置关屏保和锁屏。
代码 Agent
启动:nohup caffeinate -d -t 7200 > /dev/null 2>&1 &
结束:pkill -f caffeinate
检查:pgrep -fl caffeinate
推荐:caffeinate -d -w <调试进程 PID>,进程结束自动退出,不留垃圾