在Mac OS X中,有三种方式来实现启动项的配置:1)Login Items;2)StartupItems;3)launchd daemon。
1.Login Items
打开System Preferences,选择System -> Accounts,选择Login Items选项卡,将/Applications目录下的.app直接拖进右边的列表中。重启电脑之后就会发现列表中的程序在开机之后就自动启动了。
2.StartupItems
StartupItems,顾名思义,就是在系统启动过程中运行的程序,它们可以是运行完就立即终止的程序(比如,开机清空废纸篓),也可以是一直持续在系统运行周期的后台进程。
StartupItems一般存放在以下两个路径下:
1)/System/Library/StartupItems
2)/Library/StartupItems
大部分与系统相关的StartupItems都放在/System/Library/StartupItems这个路径下,它们会先于/Library/StartupItems路径下的执行,因为前者路径下的StartupItems提供了系统级的基础服务,比如crash reporting,core graphics services,system accounting等,而后者路径在默认情况下是不存在的,需要自己手动创建。
这里我们以/Library/StartupItems目录下的IcebergControlTower为例。
简单来说,在Mac OS X上,一个StartupItems包含以下两个方面的内容:
1)可执行程序;
2)包含依赖进程关系的plist文件(StartupParameters.plist)。
2.1 The Property List
2.1.1 Plist的key值与含义
StartupParameters.plist 是一个属性列表,包含了运行可执行程序的必要条件。
该plist需要获得root权限,包含了几个方面的内容:
1)Description;
对该服务的一个简单的描述,仅仅是描述,并不是说明实际的进程名称。
2)Provides;
指定StartupItems提供的服务。如图plist文件Provides中说明,StartupItems开启的后台进程名为:Iceberg Control Tower。
Provides可以指定多个服务,反映在图中就是Item0,Item1…等。这里只有Item0。
3)Uses;
指定了在StartupItems加载之前需要开启的服务。Mac OS X系统先尝试着加载Uses中指定的服务,然后再加载StartupItems。也就是说,即使Uses中指定的服务没有加载成功,系统仍然会加载StartupItems。
4)OrderPreference;
指定执行StartupItems的时间顺序。这个顺序的重要程度排在Uses之后,是指定执行完Uses之后的顺序。可能的取值包括:First, Early, None(default), Late, Last。
5)Messages。
2.1.2 创建一个StartupParameters.plist文件
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>Description</key>
- <string>Iceberg Control Tower Initilaization</string>
- <key>Provides</key>
- <array>
- <string>Iceberg Control Tower</string>
- </array>
- <key>Uses</key>
- <array>
- <string>Disks</string>
- </array>
- <key>OrderPreference</key>
- <string>None</string>
- </dict>
- </plist>
2.2 The Executable File
注意:1)可执行文件的名称和它所在的文件夹的文件名是一样的,这是系统默认的规则。
2)操作可执行文件需要获得root权限。
3)可执行文件是一个shell脚本。
打开IcebergControlTower文件目录下同名的可执行文件,可以看到脚本的具体内容:
一般的可执行文件包含这样几个方面的内容:
1)./etc/rc.common
Apple提供的一个脚本库,该脚本库里包含了为可执行文件引进参数的接口。在这里load这个库主要是调用RunService。
2)StartService(), StopService(), RestartService()
当可执行文件接收到的参数为start,stop或者restart时,执行相对应的函数。
参数含义:
start:开机过程中开启服务;
stop:关机过程中停止服务;
restart:在特定条件下重启服务。
3)RunService “$1”
执行传递给该脚本的第一个参数指定的服务。
“$1” 表示传给该脚本的第一个参数。例如,传入的参数为start,则执行StartService()。
3. Launchd Daemon
launchd是Mac OS下用于初始化系统环境的关键进程,它是内核装载成功之后在OS环境下启动的第一个进程。
采用这种方式来配置自启动项很简单,只需要一个plist文件,通常(同时也是系统推荐)是将plist放在~/Library/LaunchAgents路径下。
3.1 plist文件格式及每个字段的含义:
1)Label【required】
该项服务的名称。
2)OnDemand【optional】
10.4提供的一个key值,功能与KeepAlive的基本功能相似,在10.5及之后的系统中被KeepAlive替代。KeepAlive扩展了更多的功能,除了使用单一的boolean作为key值之外,还能使用字典结合多个key值。
3)Program【ProgramArgument是required的,在没有ProgramArgument的情况下,必须要包含Program这个key】
指定可执行文件的路径。
4)RunAtLoad【optional】
标识launchd在加载完该项服务之后立即启动路径指定的可执行文件。默认值为false。
5)WorkingDirectory【optional】
该key在开启可执行文件之前,指定当前工作目录的路径。
6)KeepAlive【optional】
这个key值是用来控制可执行文件是持续运行呢,还是满足具体条件之后再启动。默认值为false,也就是说满足具体条件之后才启动。当设置值为ture时,表明无条件的开启可执行文件,并使之保持在整个系统运行周期内。
3.2 创建一个plist文件:
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>Label</key>
- <string>com.yourcompany.HSPA_USB_MODEM</string>
- <key>OnDemand</key>
- <false/>
- <key>Program</key>
- <string>/Application/HSPA USB MODEM.app/Running</string>
- <key>RunAtLoad</key>
- <true/>
- <key>WorkingDirectory</key>
- <string>/Application/HSPA USB MODEM.app</string>
- </dict>
- </plist>
4.三种方式的区别
初步了解了系统的启动过程之后(http://blog.csdn.net/abby_sheen/article/details/7817132),再来看这三种配置启动项的方式,就很容易理解这三种方式之间的差异了。
总的来说,LoginItems 和StartupItems的区别较明显。
|
StartupItems |
LoginItems |
Depedency Ordering |
Need |
Do not Need |
Load Timing |
during startup |
after a user logs in |
Launched by WHO |
by root, but not necessarily |
the user |
Processes types |
background processes and processes that terminate after running |
any Mac OS X executable |
对于我们自定义的Launchd daemon,通常(同时也是系统推荐)是放在~/Library/LaunchAgents路径下。launchd进程需要在用户login之后才能加载。这种方式与LoginItems最大的区别在于,启动的进程不同。LoginItems是通过loginwindow去启动的,而Launchd daemon是通过com.apple.launchd.peruser启动。
相关推荐
在开始使用Vmware安装Mac OS X 11之前,我们需要准备以下几项内容: 1. **安装Vmware虚拟机软件**:Vmware是一款功能强大的虚拟机软件,支持多种操作系统在虚拟环境中运行。 2. **下载Mac OS X 11镜像文件**:确保...
创建虚拟机配置时,需要选择合适的操作系统(Mac OS X)及版本(Mac OS X Server),并设置至少 1024 MB 内存和 30G 大小的虚拟磁盘。然后,在 Settings 面板中,需要调整启动顺序,取消 Enable EFI 选项,并选择...
在本文中,我们将深入探讨如何使用VMware 9.0.1虚拟化软件来安装苹果的Mac OS X 10.8操作系统,这是一项技术挑战性较高的任务,因为Apple的系统通常只支持在其自家硬件上运行。通过这次近三天的实践,我们将分享整个...
推荐使用USB移动硬盘来制作做Mac OS X 的启动安装盘,先在USB中划分一个大于6.5GB的硬盘空间分区用来制作Mac OS X硬盘启动盘,然后在PC机的硬盘中划分一个大于20GB的硬盘分区用来安装Mac OS X Snow Leopard 10.6.2...
【Mac OS X Lion DP3 下载地址】是一个针对苹果操作系统Mac OS X Lion的第三个开发者预览版(Developer Preview,简称DP)的资源分享信息。Mac OS X Lion是苹果公司在2011年发布的一个重大更新,它在操作系统界带来...
从给定的文件内容中,我们可以...综上所述,该文档详细介绍了如何在特定硬件配置下安装和配置原版MAC OS X Snow Leopard,以及安装过程中的注意事项。它不仅是一份安装指南,同时也反映了社区互助和信息共享的精神。
2. **创建虚拟机配置**:启动虚拟机软件,创建一个新的虚拟机实例,选择“自定义”设置,然后选择“其他”类别中的“Mac OS X Server”或“Other Unix”作为操作系统类型,因为直接选择“Mac OS X”可能无法正常识别...
总的来说,"修改mac启动项"涉及到Mac OS X的系统配置,特别是利用工具如Lingon.app来管理Launch Agents和Launch Daemons,以实现自定义开机启动程序和服务。这是一项既实用又需要小心处理的操作,尤其对于那些希望...
在Mac OS X操作系统中,配置启动项是管理应用程序在开机时自动运行的关键步骤。本文将详细介绍三种配置Mac启动项的方法,这些方法对于优化系统启动流程和自动化日常工作流程都非常有用。 首先,我们来看第一种方式...
6. **启动安装**:启动虚拟机,它会引导进入OS X的安装界面。按照屏幕提示进行安装。 7. **激活与更新**:安装完成后,你可能需要激活OS X并通过系统更新来确保是最新的10.11.1(15B42)版本。 8. **驱动和兼容性**...
【描述】: "本教程适用于PC安装Mac OS X Lion" 是一个详细的过程,它涵盖了从准备硬件到软件配置的每一步。安装Mac OS X Lion在非Apple硬件上并不简单,因为这需要克服硬件兼容性问题、驱动程序的适配以及正确引导...
在安装Mac OS X 10.8 Lion之前,确保你已经拥有一个合法的Mac OS X安装镜像(通常为.dmg文件),并且你的计算机硬件配置满足Lion系统的最低需求。 安装过程大致分为以下步骤: 1. **创建虚拟机**:打开VMware 8,...
总的来说,"Mac OS x i3 i5 vm安装黑苹果引导文件"是一项技术性较强的任务,需要一定的计算机硬件知识和操作系统原理理解。这两个ISO文件是实现这个目标的重要工具,它们共同帮助非苹果硬件构建一个能够运行Mac OS X...
- **StartupParameters.plist**:每个启动项都有一个对应的.plist文件,其中包含了启动时所需的参数。 综上所述,Mac OS X的引导过程是一个复杂而精细的过程,涉及到了从硬件初始化到最终用户登录等多个阶段。每个...
### Mac OS X Lion 教程知识点详述 #### 标题与描述理解 标题“mac os x lion 教程”明确指向了针对苹果操作系统OS X Lion版本的学习指南。描述部分提及了教材工具的获取方式(115网盘),暗示教程不仅包含理论...
3. 启动项管理工具:帮助用户优化Mac OS X的启动过程,提高系统启动速度和稳定性。 4. 使用指南或说明文档:提供详细的操作步骤和故障排除建议,帮助用户正确安装驱动和执行修复操作。 用户在使用这个压缩包时,应...
2. **黑苹果安装**:非苹果硬件安装Mac OS X通常需要额外的步骤,如制作启动U盘、修改BIOS设置以支持引导、配置Clover或Chameleon这样的引导加载器等。这需要对计算机硬件和操作系统引导机制有一定了解。 3. **引导...
- **自定义设置**:学习如何根据个人需求定制系统设置,例如调整桌面背景、启动项和快捷键等。 综上所述,《Unix for Mac: Your Visual Blueprint to Maximizing the Foundation of Mac OS X 2003》不仅涵盖了Unix...
"org.chameleon.Boot"是OS X中的一个启动加载器,它主要用于非苹果认证的硬件上运行Mac OS X。Chameleon是著名的第三方启动加载器,它允许用户在非Apple主板上安装和启动OS X,这在破解或装机社区中非常常见。...