2023年11月27日发(作者:)

控制macOS的开机启动

Mac开机启动的配置与其他类Unix系统相⽐较⿇烦,Linux配置⽂件即可。

macOS系统上开机启动这个叫法不准确,应该叫“⾃启动”或者“登录时启动”。macOS上启动项可分为登陆项(Login Items)和启动项

(Startup Items)。Login items在⽤户登录后⽴即启动并⼀直运⾏,直到⽤户退出登录或者⼿动终⽌才会停⽌运⾏。Startup items苹果官⽅

不推荐再使⽤,Startup items在系统装载的最后阶段启动。详见官⽅⽂档

下⾯简要介绍如何配置⾃启动项。

使⽤登录项添加⾃启动项

这种⽅式⽀持有⽤户界⾯的程序。

进⼊->->,点击+号找到想⾃动启动的软件,选择后按确定即可。

设置⽤户与群组登录项

删除⾃启动项,重新进⼊,选中⽬标项点击减号后确定即可。

登录项

使⽤launchctl⼯具添加启动项

从OS X 10.4 Tiger开始,Apple要求开发者使⽤launch daemons and agents配置⾃启动项,launch daemons和launch agents由

launchd进程管理。launchd是macOS下⽤于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第⼀个进程。采⽤这种⽅式

来配置⾃启动项只需要⼀个plist⽂件,该plist⽂件存在于以下⽬录,各⽬录决定了其启动的先后和拥有的权限:

~/Library/LaunchAgents //特定⽤户登录后以当前⽤户启动,第三⽅程序⼀般都放这⾥

/Library/LaunchAgents //任⼀⽤户登录后以当前⽤户启动,管理员使⽤

/System/Library/LaunchAgents //系统组件,任⼀⽤户登录后以当前⽤户启动

/Library/LaunchDaemons //系统装载时以root⽤户启动,管理员使⽤

/System/Library/LaunchDaemons //系统组件,系统装载时以root⽤户启动

⽬录区别:

/System/Library //存放Apple开发的系统组件。

/Library //存放系统管理员安装的程序。

~/Library //存放普通⽤户安装的程序。

launch daemon和launch agents区别:

它们本质上都是守护进程,launch daemons在系统装载时启动,属于所有⽤户;launch agents是某个⽤户拥有的程序,在这个⽤户登录后启

动。

创建plist⽂件

vi ~/Library/LaunchAgents/

写⼊以下xml

"/DTDs/">

KeepAlive

RunAtLoad

Label

aria2

ProgramArguments

/usr/local/bin/aria2c

-D

WorkingDirectory

/Users/Roy/Downloads

brew services start mysql //如果⽤Homebrew安装了mysq

只运⾏不开机启动

brew services run mysql

停⽌运⾏不再开机启动(存疑,未验证)

brew services stop mysql

注意Homebrew安装的程序不全都⽀持这种⽅式,如果命令执⾏失败,请⼿动配置plist⽂件,使⽤launchctl⼯具添加启动项。