我想知道在 OS X (Mountain) Lion 中从启动文件夹启动服务和应用程序的顺序,例如:
/Library/LaunchAgents
/Library/LaunchDaemons
/System/Library/LaunchAgents
/System/Library/LaunchDaemons
~/Library/LaunchAgent
/Library/StartupItems
/System/Library/StartupItems
答案1
/System/Library/LaunchDaemons
、/Library/LaunchDaemons
和/Library/StartupItems
都在系统启动时处理。 LaunchDaemons 文件夹没有特定的顺序——其中的所有内容都可以同时运行,只有带有 的文件夹才<key>RunAtLoad</key><true/>
真正可以立即启动。 launchd 的执行方式是将它们全部启动,然后让它们自行解决依赖关系。
StartupItems(如果有)定义了它们自己的顺序。每个 StartupItem 都是一个文件夹,其中包含要运行的脚本和一个StartupParameters.plist
文件,该文件(除其他内容外)可以定义 StartupItem 提供的内容和需要的内容;它们将按顺序排列,以便提供特定功能的项目在需要该功能的项目之前运行。
我希望 StartupItems 在 RunAtLoad LaunchDaemons 之后运行,但我认为这并没有在任何地方指定,而且我不会依赖它。
三个 LaunchAgent 文件夹中的项目均在用户登录时加载(即系统启动后某个时间)。与 LaunchDaemons 一样,没有特定的顺序,它们都可同时运行。
/System/Library/StartupItems
最后, OS X Lion 中没有文件夹。