马春杰杰博客
致力于深度学习经验分享!

macOS中Launchctl介绍以及LaunchDaemons和LaunchAgents的区别

最新目录

OS X 10.4 Tiger开始,Apple要求开发者使用launch daemons and agents配置自启动项,launch daemonslaunch agentslaunchd进程管理。launchdmacOS下用于初始化系统环境的关键进程,它是内核装载成功之后在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是某个用户拥有的程序,在这个用户登录后启动

Launchctl 相关命令

查看已有的任务:

launchctl list

查看指定的任务 xxx 是否存在(加载):

launchctl list | grep xxx

加载指定的任务 xxx:

launchctl load -w xxx

launchctl load xxx

删除任务:

launchctl unload -w xxx

launchctl load xxx

开始任务:

launchctl start xxx

停止任务:

launchctl stop xxx

注意:

  • 如果任务修改了,必须先 unload,然后重新执行 load
  • start 可以测试任务,这个命令是立即执行,不管时间到了没有
  • 执行 start 和 unload 命令前,任务必须先执行过 load,否则报错
  • .plist 中不要添加 KeepAlive 标签,否则无条件 10s 定时执行

关于如何使用Launchctl进行脚本定时运行:

关于如何使用Launchctl进行脚本开机自启:

赞(230) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《macOS中Launchctl介绍以及LaunchDaemons和LaunchAgents的区别》
文章链接:https://www.machunjie.com/macos/1411.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

:smile: :sad: :arrow: :cool: :confused: :cry: :eek: :evil: :exclaim: :idea: :lol: :mad: :mrgreen: :neutral: :question: :razz: :redface: :rolleyes: :surprised: :wink: :biggrin: :twisted: