Mac Launchd 介绍和使用

Mac Launchd 介绍和使用 Linux 上如果想开机开机启动一个服务或者定时运行一个服务有很多的选择比如之前介绍过的Systemd或者用 crontab 也可以,而在 Mac 不同它有一个类似的叫 Launchd 的系统,对应使用launchctl命令控制 Daemons and Agents Launchd 管理 Daemons 和 Agents 两种类型分别存放在不同的文件夹下,主要的区别是 Agents 是用户登录后执行的 Daemons 是开机后就执行,可以通过UserName指定用户比如root用户 配置文件 Launchd 配置文件以.plist结尾,本质上是xml格式的文件,Daemons 和 Agents 各存放的路径也不同 类型 路径 说明 User Agents ~/Library/LaunchAgents 用户 Agents 当前用户登录时运行 Global Agents /Library/LaunchAgents 全局 Agents 任何用户登录时都会运行 System Agents /System/Library/LaunchAgents 系统 Agents 任何用户登录时都会运行 Global Daemons /Library/LaunchDaemons 全局 Daemons 内核初始化加载完后就运行 System Daemons /System/Library/LaunchDaemons 系统 Daemons 内核初始化加载完后就运行 系统运行开机首先会加载内核启动kernel_tas(0),然后启动launchd(1)好后去启动指定好的 Daemons 最后用户登录再运行相应的 Agents 任务 一般文件名都以com.domain.programName.plist格式命名,不管是 Daemons 还是 Agents 格式都是一样的,只是存放位置不同。看下面一个 hello world 的例子 ~/Library/LaunchAgents/com....

April 19, 2021 · 2 min · 334 words · Fython