可通过五种方法使mac上指定应用持续运行:一、用caffeinate绑定pid;二、封装含caffeinate的启动脚本;三、用amphetamine按条件锁定;四、修改info.plist启用lsbackgroundonly;五、配置launchd守护进程自动监控。

如果您希望某个特定应用程序在Mac上持续运行而不受系统休眠机制影响,则可能是由于macOS默认对空闲应用施加电源管理限制,导致其被挂起或终止。以下是针对单个应用维持活跃状态的多种可行方法:
一、使用caffeinate命令绑定指定App进程
该方法通过macOS原生caffeinate工具将目标应用的进程ID(PID)作为守护对象,只要该进程存在且未退出,系统就不会进入睡眠状态。适用于已知启动方式或可预判PID的应用场景。
1、在终端中启动目标应用并保持前台运行,例如:open -a "Google Chrome"。
2、新开一个终端窗口,执行命令获取该应用的PID:pgrep -f "Google Chrome"。
3、将caffeinate与该PID绑定:caffeinate -w PID数值。
4、此时即使切换至其他应用或锁屏,只要Chrome进程仍在运行,系统将保持唤醒状态。
二、封装应用启动脚本并嵌入caffeinate守护
该方法将应用启动与caffeinate指令合并为单一可执行脚本,确保每次双击运行时自动启用防休眠保护,无需手动干预终端。
1、在访达中前往“应用程序”文件夹,右键点击目标App(如“Visual Studio Code”),选择“在访达中显示”。
2、打开终端,输入命令创建脚本:touch ~/Desktop/launch_code_awake.sh。
3、编辑脚本:nano ~/Desktop/launch_code_awake.sh。
4、输入以下内容(注意替换App名称和路径):
#!/bin/bash
open -a "Visual Studio Code"
sleep 2
caffeinate -i -u -s &
5、保存后退出编辑器,执行命令赋予执行权限:chmod +x ~/Desktop/launch_code_awake.sh。
6、双击运行该脚本,即可启动应用并同步激活防休眠守护。
三、利用Amphetamine应用按条件锁定特定App活跃性
该方法借助图形化第三方工具Amphetamine,支持基于进程名、窗口标题或Bundle ID精准识别目标应用,并设置触发式唤醒策略,避免全局禁用休眠带来的能耗问题。
1、从Mac App Store或官网下载安装Amphetamine 5.0及以上版本。
2、启动Amphetamine,在菜单栏点击其图标,选择“创建新规则”。
3、在规则配置中,点击“应用”下拉框,选择“正在运行以下应用时”,然后输入目标App的精确Bundle ID(可通过命令osascript -e 'id of app "Safari"'获取)。
4、勾选“防止显示器关闭”、“防止系统睡眠”、“防止磁盘休眠”三项。
5、点击“完成”并启用该规则,当目标App处于活动或后台运行状态时,防休眠即刻生效。
四、修改App的Info.plist启用后台持续运行标识
该方法直接修改应用包内配置文件,向系统声明该应用需长期驻留内存并响应后台事件,适用于开发者可控或已签名的独立应用,部分沙盒应用可能受限。
1、在访达中右键点击目标App,选择“显示包内容”。
2、进入Contents文件夹,找到Info.plist文件,右键用Xcode或文本编辑器打开。
3、在
4、保存文件后,在终端执行命令重签名(若应用受公证限制):codesign --force --deep --sign - /Applications/YourApp.app。
5、重启应用,系统将按后台模式加载,降低被挂起概率。
五、通过launchd配置用户级守护进程监控App生命周期
该方法创建一个持久化launchd服务,持续检查目标App是否运行,一旦检测到其启动即自动注入caffeinate守护,适合需要全自动响应的生产环境。
1、在终端中执行:nano ~/Library/LaunchAgents/com.user.appawake.plist。
2、输入以下XML内容(替换AppName和Path):
3、保存后执行命令加载服务:launchctl load ~/Library/LaunchAgents/com.user.appawake.plist。
4、服务将每30秒扫描一次目标App,启动即激活caffeinate守护进程。










