macOS开机启动项设置 |
您所在的位置:网站首页 › 白醋加什么敷脸能淡斑 › macOS开机启动项设置 |
1. 概述
macOS开机启动项与其他类Unix比较麻烦,Linux配置rc.local文件即可。 macOS系统上开机启动这个叫法不准确,应该叫“自启动”或则“登录时启动”。 macOS上启动项可分为登录项(Login Items)和启动项(Startup Items): Login Items在用户登录后立即启动并一直运行,直到用户退出登录或者手动终止才会停止运行;Startup items在系统装载的最后阶段启动,苹果官方不再推荐使用。2. macOS启动项管理 2.1 使用登录项添加自启动项 这种方式支持有用户界面的程序。 进入:设置–> 用户与群组–>登录项,点击+号找到想自动启动的软件,选择后确定即可。 删除启动项,点击 - 号删除即可。 2.2 使用launchctl工具添加启动项 从OS X 10.4 Tiger开始,Apple要求开发者使用launch daemons and agents配置自启动项,launch daemons和launch agents由launchd进程管理。launch是macOS下用于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第一个进程。采用这种方式来配置自启动项只需要一个plist文件,该plist文件存在以下目录,各目录决定了其启动的先后和拥有的权限: ~/Library/LaunchAgents //特定用户登录以后以当前用户运行,第三方程序一般都放这里; /Library/LaunchAgents //任一用户登录后以当前用户启动,管理员使用; /System/Library/LaunchAgents //系统组件,任一用户登录后以当前用户启动 /Library/LaunchDaemons // 系统装载时以root用户启动,管理员使用 /System/Library/LaunchDaemons //系统组建,系统装载时以root用户启动 (跟上面的一样,只是分组的方式不一样,便于理解) /Library/LaunchDaemons: 系统启动时运行,用户不登录也会运行 /Library/LaunchAgents: 用户登录后运行 ~/Library/LaunchAgents: 用户自定义的用户启动项 /System/Library/LaunchDaemons: 系统自带的启动项 /System/Library/LaunchAgents: 系统自带的启动项 2.3 各目录区别 /System/Library //存放Apple开发的系统组件 /Library //存放系统管理员安装的程序 ~/Library //存放普通用户安装的程序 2.4 launch daemons和launch agents区别 它们本质上都是守护进程,launch daemons在系统装载时启动,属于所有用户;launch agents是某个用户拥有的程序,在这个用户登录后启动。 3. plist文件 每个.plist文件中,有3个属性控制着是否会开机自启动。 KeepAlive: 决定程序是否需要一直运行,如果是false则需要才启动,默认false;RunAtLoad: 开机时是否运行,默认为false;SuccessfulExit: 此项为true时,程序正常退出时重启(即退出码为0);为false时,程序非正常退出时重启。此项设置时会隐含默认RunAtLoad = true,因为程序需要至少运行一次才能获得退出状态。所以其实针对这三项,不同的值有不同的表现: 如果KeepAlive = false: 当RunAtLoad = false时,程序只有在有需要的时候运行。 当RunAtLoad = true时,程序在启动时会运行一次,然后等待在有需要的时候运行。 当SuccessfulExit = true / false时,不论RunAtLoad值是什么,都会在启动时运行一次。气候根据SuccessfulExit值来决定是否重启。如果KeepAlive = true: 不论RunAtLoad/SuccessfulExit值是什么,都会启动时运行且一直保持运行状态。如果不希望开机自启动运行,则需要: 找到对应程序的plist文件;删除SuccessfulExit属性;将RunAtLoad / KeepAlive均设为4. 创建plist vim ~/Library/LaunchAgents/aria2.plist 写入以下xml DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> KeepAlive RunAtLoad Label aria2 ProgramArguments /usr/local/bin/aria2c -D WorkingDirectory /Users/Roy/Downloads 检查plist语法是否正确 plutil ~/Library/LaunchAgents/aria2.plist 修改文件权限 chmod 644 ~/Library/LaunchAgents/aria2.plist 添加启动项 //launchctl 工具提供了一系列接口方便launchd程序 launchctl load ~/Library/LaunchAgents/aria2.plist 启动自启动项 launchctl start aria2 删除自启动项 launchctl unload ~/Library/LaunchAgents/aria2.plist 查看当前所有自启动项 launchctl list 5. Homebrew安装的程序可使用Homebrew Service设置开机启动 5.1 设置开机启动 brew service start mysql //如果Homebrew安装了mysql; 5.2 只运行,不开机启动 brew service run mysql 5.3 停止运行不再开机启动(待验证) brew service stop mysql Homebrew安装的程序不全都支持这种方式,如果命令执行失败,需要手动设置plist文件,使用launchctl工具添加启动项。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |