可通过四种方法为mac特定应用设置进程级唤醒锁定:一、用caffeinate命令前置启动;二、编写循环检测的shell脚本;三、借助amphetamine图形化工具配置应用运行时规则;四、通过launchd创建开机自启的持久化守护服务。

如果您希望某个特定应用程序在运行时不触发Mac整体休眠或屏幕关闭,但又不改变系统全局电源策略,则需采用进程级唤醒锁定机制。以下是实现此目标的步骤:
一、使用caffeinate命令绑定指定应用启动
该方法通过在终端中以caffeinate前置方式启动目标App,使其运行期间自动获得系统唤醒锁,仅对该实例生效,退出后自动释放锁,不影响其他程序或系统默认行为。
1、打开“终端”应用。
2、输入以下命令并回车,以caffeinate方式启动Safari:caffeinate -i -w $(pgrep -n Safari) &
3、若需启动其他应用(如Chrome),先确保其已运行,再执行:caffeinate -i -w $(pgrep -n Google\ Chrome) &
4、验证是否生效:在终端中执行pmset -g assertions,查看PreventUserIdleSystemSleep和PreventUserIdleDisplaySleep状态是否为asserted,且Kernel字段显示对应进程PID。
二、创建应用专属唤醒脚本
该方法将caffeinate与应用启动逻辑封装为可重复调用的shell脚本,支持后台驻留、自动重连及进程存活检测,适用于需长期运行的单应用常亮场景。
1、在终端中执行:touch ~/Desktop/keep_safari_awake.sh
2、编辑脚本:nano ~/Desktop/keep_safari_awake.sh
3、在编辑器中输入以下内容:
#!/bin/bash
APP_NAME="Safari"
while true; do
if pgrep "$APP_NAME" > /dev/null; then
PID=$(pgrep "$APP_NAME" | head -n 1)
caffeinate -i -w $PID &
wait $!
else
sleep 5
fi
done
4、保存并退出编辑器(Control + O → 回车 → Control + X)。
5、赋予执行权限:chmod +x ~/Desktop/keep_safari_awake.sh
6、运行脚本:nohup ~/Desktop/keep_safari_awake.sh &
三、利用Amphetamine创建基于应用活动的规则
该方法借助图形化工具Amphetamine建立条件触发式唤醒策略,当指定应用处于前台或进程活跃状态时,自动启用防休眠锁,支持精确匹配Bundle ID,避免误判。
1、从Mac App Store或官网下载安装Amphetamine 5.0及以上版本。
2、启动Amphetamine,点击菜单栏图标,选择“Create New Rule”。
3、在规则配置中,点击“Application”条件项,选择“Is Running”并点击“Choose Application”。
4、在弹出窗口中,点击“Other…”,然后按Command + Shift + G,输入路径:/Applications/Safari.app,选中并确认。
5、在下方“Keep Mac Awake”选项中,勾选While this application is running及Also prevent display sleep。
6、点击“Save”,规则立即激活;可在Amphetamine界面顶部看到当前生效规则及关联进程状态。
四、通过launchd配置持久化应用级唤醒守护
该方法利用macOS原生launchd服务,在系统启动时自动监控目标应用,并在其运行时注入caffeinate守护,适合需要开机即生效、无需人工干预的生产环境。
1、在终端中执行:mkdir -p ~/Library/LaunchAgents
2、创建plist文件:nano ~/Library/LaunchAgents/local.keep-safari-awake.plist
3、输入以下内容(注意替换BundleIdentifier为实际值):
4、加载服务:launchctl load ~/Library/LaunchAgents/local.keep-safari-awake.plist
5、验证服务状态:launchctl list | grep keep-safari-awake









