0

0

MAC怎么设置特定App不进入休眠_MAC防止单个程序中断方法【常亮】

穿越時空

穿越時空

发布时间:2026-03-05 17:31:03

|

239人浏览过

|

来源于php中文网

原创

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

mac怎么设置特定app不进入休眠_mac防止单个程序中断方法【常亮】

如果您希望某个特定应用程序在运行时不触发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,查看PreventUserIdleSystemSleepPreventUserIdleDisplaySleep状态是否为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 runningAlso 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为实际值):




  Label
  local.keep-safari-awake
  ProgramArguments
  
    sh
    -c
    while pgrep -f "Safari.app/Contents/MacOS/Safari" > /dev/null; do caffeinate -i -w $(pgrep -f "Safari.app/Contents/MacOS/Safari" | head -n1) & wait $!; done
  

  RunAtLoad
  
  KeepAlive
  
    OtherJobEnabled
    
  


4、加载服务:launchctl load ~/Library/LaunchAgents/local.keep-safari-awake.plist

5、验证服务状态:launchctl list | grep keep-safari-awake

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

1024

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

823

2023.11.06

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

930

2023.08.02

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

252

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

1008

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

839

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

104

2023.09.25

pdf怎么转换成xml格式
pdf怎么转换成xml格式

将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1941

2024.04.01

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

2

2026.03.05

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Java 教程
Java 教程

共578课时 | 76.8万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号