讲师中心 微信公众号

工具推荐

视频效率加速
updream

一键生成高质量推广成片

Seko
Seko

AI短剧一键生成成片

AniShort
AniShort

AI短剧协同制作平台

Laper
Laper

剧本策划到成片协作

Mac怎么编写launchd配置文件_Mac如何创建plist文件实现开机自启和定时任务【方法】

夏芳姑娘_2953

夏芳姑娘_2953

发布时间:2026-03-23 20:12:00

|

790人浏览过

|

来源于php中文网

原创

Mac中实现开机自启或定时任务需编写launchd plist文件:系统级存/Library/LaunchDaemons/,用户级存~/Library/LaunchAgents/;开机自启用RunAtLoad和KeepAlive,定时任务用StartCalendarInterval或StartInterval;需plutil校验、launchctl加载并配置日志调试。

mac怎么编写launchd配置文件_mac如何创建plist文件实现开机自启和定时任务【方法】

如果您希望在Mac系统中实现程序开机自启或按指定时间自动执行任务,则需要编写符合launchd规范的plist配置文件。以下是完成此目标的具体方法:

一、理解launchd plist文件的基本结构与存放位置

launchd通过XML格式的plist文件定义服务行为,文件需遵循Apple规定的DTD结构,并保存在特定目录下以触发不同加载时机。系统级任务存于/Library/LaunchDaemons/,用户级任务存于~/Library/LaunchAgents/,权限和加载时机由此区分。

1、使用文本编辑器(如TextEdit切换为纯文本模式,或VS Code、Sublime Text)新建一个以.plist为扩展名的文件,例如com.example.backup.plist。

2、在文件开头写入标准XML声明与DOCTYPE,确保根元素为<dict></dict>,并包含Label键作为唯一标识符。

3、根据用途选择存放路径:开机自启且需系统权限的服务必须放入/Library/LaunchDaemons/,且文件属主为root:wheel,权限设为644;仅当前用户登录后运行的任务则放入~/Library/LaunchAgents/,属主为当前用户,权限同样为644。

二、编写开机自启型plist文件

此类配置在系统启动完成、用户未登录时即加载,适用于后台守护进程,依赖RunAtLoad键启用立即执行,常配合KeepAlive维持进程存活。

1、在<dict></dict>内添加<key>Label</key><string>com.example.myservice</string>,字符串须全局唯一且不含空格或下划线以外的特殊字符。

2、添加<key>ProgramArguments</key><array><string>/usr/local/bin/myscript.sh</string></array>,指定完整路径的可执行文件或脚本。

3、添加<key>RunAtLoad</key><true></true>和<key>KeepAlive</key><true></true>,确保开机即运行且异常退出后自动重启。

4、若脚本需图形界面交互,还需加入<key>SessionCreate</key><true></true>;若需等待网络就绪,添加<key>StartOnMount</key><true></true>。

三、编写定时任务型plist文件

定时任务通过StartCalendarInterval或StartInterval控制触发时机,前者支持精确到分钟的周期(如每天上午9点),后者为固定秒数间隔(如每3600秒)。

1、在<dict></dict>中添加<key>StartCalendarInterval</key><dict><key>Hour</key><integer>9</integer><key>Minute</key><integer>0</integer></dict>,表示每日9:00执行。

2、若需多时段运行,可将StartCalendarInterval设为数组,每个元素为独立<dict></dict>,分别定义不同时间点。

3、使用StartInterval替代时,直接写入<key>StartInterval</key><integer>7200</integer>,代表每2小时运行一次。

4、为避免任务堆积,建议同时添加<key>ThrottleInterval</key><integer>3600</integer>,限制两次启动最小间隔为1小时。

四、验证与加载plist文件

语法错误会导致launchd拒绝加载,因此必须校验XML格式正确性,并通过命令行工具完成注册与状态检查。

1、在终端中执行plutil -lint /path/to/your.plist,返回“OK”表示语法无误;若报错,需根据提示修正标签闭合或键名拼写。

2、对系统级plist,先用sudo chown root:wheel /Library/LaunchDaemons/com.example.myjob.plist修改属主,再执行sudo chmod 644 /Library/LaunchDaemons/com.example.myjob.plist设置权限。

3、加载配置:用户级任务运行launchctl load ~/Library/LaunchAgents/com.example.myjob.plist;系统级任务运行sudo launchctl load /Library/LaunchDaemons/com.example.myjob.plist。

4、检查是否生效:执行launchctl list | grep example,若输出中包含对应Label且PID非“-”,说明已成功加载并运行。

五、调试与日志记录配置

当任务未按预期执行时,需捕获标准输出与错误流,以便定位脚本内部或环境变量问题。

1、在plist的<dict></dict>中添加<key>StandardOutPath</key><string>/var/log/myjob.log</string>,将stdout重定向至指定日志文件。

2、添加<key>StandardErrorPath</key><string>/var/log/myjob.err</string>,单独捕获stderr内容。

3、若脚本依赖特定shell环境变量(如PATH),应在plist中显式声明:<key>EnvironmentVariables</key><dict><key>PATH</key><string>/usr/local/bin:/usr/bin:/bin</string></dict>。

4、修改plist后,需先unload再reload:执行launchctl unload后再launchctl load,否则变更不会生效。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

函子Zion

一款支持AI搭建、可视化编辑和多端发布的全栈无代码开发平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

相关专题

更多
string转int
string转int

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

7499

2023.08.02

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

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

5144

2024.04.01

xml怎么变成word
xml怎么变成word

步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。

6677

2024.08.01

xml是什么格式的文件
xml是什么格式的文件

xml是一种纯文本格式的文件。xml指的是可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。想了解更多相关的内容,可阅读本专题下面的相关文章。

2642

2024.11.28

mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

17980

2023.12.04

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1263

2024.02.23

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

9630

2025.06.11

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

3842

2025.08.07

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

20

2026.11.12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 207人学习

PostgreSQL 教程
PostgreSQL 教程

共48课时 | 21万人学习

好课诞生记
好课诞生记

共20课时 | 7.2万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn