Mac下的启动服务主要有三个地方可配置:
1,系统偏好设置->帐户->登陆项
2,/System/Library/StartupItems 和 /Library/StartupItems/
3,launchd 系统初始化进程配置。
前两种优化比较简单,本文主要介绍的是第三种更为复杂的launchd配置优化。
launchd是Mac OS下,用于初始化系统环境的关键进程。类似Linux下的init, rc。
我们先来看一下Mac OS X的启动原理:
1,mac固件激活,初始化硬件,加载BootX引导器。
2,BootX加载内核与内核扩展(kext)。
3,内核启动launchd进程。
4,launchd根据 /System/Library/LaunchAgents ,/System/Library/LaunchDaemons , /Library/LaunchDaemons,/Library/LaunchAgents , ~/Library/LaunchAgents里的plist配置,启动服务守护进程。
看完了Mac OS X的启动原理,我们不难发觉/System/Library/LaunchAgents ,/System/Library/LaunchDaemons , /Library/LaunchDaemons,/Library/LaunchAgents五个目录下的plist属性文件是优化系统的关键。
下面再来理解几个基础概念:
/System/Library和/Library和~/Library目录的区别?
/System/Library目录是存放Apple自己开发的软件。
/Library目录是系统管理员存放的第三方软件。
~/Library/是用户自己存放的第三方软件。
LaunchDaemons和LaunchAgents的区别?
LaunchDaemons是用户未登陆前就启动的服务(守护进程)。
LaunchAgents是用户登陆后启动的服务(守护进程)。
上面提到的五个目录下的plist文件格式及每个字段的含义:
Key | Description | Required |
Label | The name of the job | yes |
ProgramArguments | Strings to pass to the program when it is executed | yes |
UserName | The job will be run as the given user, who may not necessarily be the one who submitted it to launchd. | no |
inetdCompatibility | Indicates that the daemon expects to be run as if it were launched by?inetd | no |
Program | The path to your executable. This key can save the ProgramArguments key for flags and arguments. | no |
onDemand | A?boolean?flag that defines if a job runs continuously or not | no |
RootDirectory | The job will be?chrooted?into another directory | no |
ServiceIPC | Whether the daemon can speak IPC to launchd | no |
WatchPaths | Allows launchd to start a job based on modifications at a file-system path | no |
QueueDirectories | Similar to WatchPath, a queue will only watch an empty directory for new files | no |
StartInterval | Used to schedule a job that runs on a repeating schedule. Specified as the number of seconds to wait between runs. | no |
StartCalendarInterval | Job scheduling. The?syntax?is similar to?cron. | no |
HardResourceLimits | Controls restriction of the resources consumed by any job | no |
LowPriorityIO | Tells the kernel that this task is of a low priority when doing file system I/O | no |
Sockets | An array can be used to specify what socket the daemon will listen on for launch on demand | no |
看不懂上面地plist配置吗?没关系,我们的优化策略是完全卸载服务,所以我们不用关心plist里的配置含义。
开始优化
禁用服务,我们需要用到Mac OS提供的一个工具指令-launchctl
launchctl 指令会针对服务设置一个禁用标志,launchd启动时会先检查这个服务是否被禁用,从而确定是否需要启用这个服务。
禁用服务的方法1
先找到禁用标志文件 /var/db/launchd.db/com.apple.launchd/overrides.plist,查看你要禁用的服务是否已被禁用了。
有些服务已被禁用,但未列在overrides.plist里。此时,你还需要检查这个服务的plist文件Label字段是否已经标记为 Disable。
确认这个服务未禁用后,我们就可以通过调用如下命令,来禁用服务:
sudo launchctl unload plist文件路径
sudo launchctl unload -w?plist文件路径
比如,我想禁用spotlight,则输入
sudo launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.Spotlight.plist
禁用完服务以后,重启Mac OS即可生效。
禁用服务的方法2,一种更有效且暴力的方法(推荐)
先卸载服务
sudo launchctl unload /System/Library/LaunchAgents/com.apple.Spotlight.plist
然后将plist文件mv到其他目录备份。重启。搞定。是不是很简单!
我个人比较喜欢这种禁用服务的方式,所以推荐一下。
如果发现服务禁用后,系统或软件出现异常,可以通过如下命令,还原服务:
方法1:
sudo launchctl load -wF plist文件路径
方法2:
将备份的plist文件mv回原来的文件夹。
sudo launchctl load plist文件路径
注意:系统级服务的禁用要异常小心,请在禁用前google,确保你熟知这个服务的作用。否则可能导致系统无法启动。
最安全的做法就是不要去禁用它了。
当然,用户服务我们还是可以放心禁用的,有问题最多再启用呗。
下面是我禁用的服务列表:
/System/Library/LaunchDaemons/com.apple.metadata.mds.plist (禁用spotlight的前提)
/System/Library/LaunchAgents/com.apple.Spotlight.plist (Spotlight)
/Library/LaunchDaemons/com.google.keystone.daemon.plist (Google Software Update)
/Library/LaunchAgents/com.google.keystone.root.agent (Google Software Update)
~/Library/LaunchAgents/com.google.keystone.agent.plist(Google Software Update,用户下的进程不需要加 sudo)
~/Library/LaunchAgents/com.apple.CSConfigDotMacCert-ken.wug\@me.com-SharedServices.Agent.plist (me.com的共享服务,我不用)
/System/Library/LaunchDaemons/org.cups.cupsd.plist (打印机)
/System/Library/LaunchDaemons/org.cups.cups-lpd.plist (打印机)
/System/Library/LaunchDaemons/com.apple.blued.plist (蓝牙)
/System/Library/LaunchAgents/com.apple.AirPortBaseStationAgent.plist (apple无线基站,我没有这个设备)
知道守护进程(服务)名,如何找到对应的plist文件?
将进程(服务)名拷贝,然后到 /System/Library/LaunchAgents ,/System/Library/LaunchDaemons , /Library/LaunchDaemons,/Library/LaunchAgents , ~/Library/LaunchAgents 五个目录里,通过以下命令查找:
ll|grep 进程(服务)名
比如
ll|grep blued
在 /System/Library/LaunchDaemons 中找到了它。接下来,请按上面指导的步骤,禁用该服务。
相关推荐
Mac OS的启动服务优化是一个关键的系统性能提升策略,尤其对于高级用户来说,理解并掌握这一领域的知识至关重要。本文将深入探讨如何优化Mac OS的启动服务,重点在于launchd配置的高级技巧。 首先,让我们了解Mac ...
标题中的“mac os U盘启动引导文件”指的是在苹果Mac OS操作系统环境下,利用U盘创建一个可引导的启动媒介,以便在没有安装Mac OS的系统上启动计算机或进行系统维护工作,比如修复驱动程序。这种方法特别适用于在...
Rebel EFI的工作原理是模拟Apple的EFI(Extensible Firmware Interface)环境,使得非Apple硬件能够理解和处理MAC OS X的启动流程。这为那些希望在个人电脑上体验MAC OS X的用户提供了可能性,但请注意,这可能违反...
标题中的“引导Mac OS X 10.7的工具”指的是一个用于启动并安装苹果公司操作系统Mac OS X 10.7(代号Lion)的辅助程序或软件。Mac OS X 10.7是苹果在2011年发布的一个重大更新,引入了许多新功能,如全屏应用、...
标题中的“MAC OS SATA 补丁”指的是针对苹果操作系统(MAC OS X)的SATA驱动程序更新或修改,主要是为了解决系统无法正确识别大于128GB硬盘容量的问题。在早期版本的MAC OS X中,由于驱动兼容性限制,可能会出现只...
1. **启动虚拟机**:完成虚拟机配置后,启动虚拟机并进入Mac OS 10.7.2安装界面。 2. **语言和地区设置**:根据个人喜好选择语言和地区。 3. **磁盘工具**:在安装过程中,使用磁盘工具格式化虚拟硬盘,确保格式为...
**Mac OS X 启动盘_darwin_snow_legacy** 这个标题所指的"Mac OS X 启动盘_darwin_snow_legacy"是与苹果公司的操作系统Mac OS X相关的一个特殊版本,它主要用于创建能够启动Mac电脑的安装介质。这里的"darwin"是Mac...
在学习MAC OS、iOS开发和测试时,没有Mac电脑的限制是很大的障碍。幸运的是,vm12安装macOS可以帮助我们解决这个问题。本文将详细介绍vm12安装macOS的步骤,使您可以轻松地在Windows系统上安装和运行macOS。 知识点...
12. **.Mac集成**:虽然现在已经演变为iCloud,但在当时,.Mac服务(现在的MobileMe)与Leopard紧密集成,提供了邮件、同步、备份等云服务。 综上所述,Mac OS X 10.5 Leopard不仅在功能上进行了大量创新,而且在...
【Mac OS X Lion 10.7.3 完整安装包种子】 Mac OS X Lion 10.7.3是苹果公司推出的一款操作系统,属于Mac OS X系列的一部分,发布于2012年。这一版本是Lion操作系统的重要更新,它在10.7.2的基础上进行了多项改进和...
根据给定的文件信息,我们可以深入探讨与"Apple Training Series - Mac OS X Support Essentials v10,6"相关的IT知识,这本教材是苹果官方针对其操作系统Mac OS X(版本10.6)的支持和维护培训资料。由Kevin M. ...
5. **安装mac OS**:解锁完成后,你可以在虚拟机软件中启动这个已解锁的虚拟机配置,并按照mac OS的安装流程进行操作。记得准备好mac OS的ISO镜像文件,这是安装过程中需要的。 6. **遵循教程**:在提供的解锁器...
HJMac.iso文件就是专为这个目的设计的一个启动引导程序,它允许用户在VMware上顺利安装Mac OS。本文将详细介绍如何利用HJMac.iso在VMware上安装Mac OS的启动引导程序,并探讨相关知识点。 首先,我们要理解虚拟化...
3. **BIOS设置**:说明如何进入BIOS并调整启动选项,以支持从USB或DVD启动MAC OS X安装媒体。 4. **安装工具**:介绍PlexTools、Clover或其他引导加载器的使用方法,它们能让AMD系统识别并启动MAC OS X安装程序。 ...
【MAC OS X 10.8 (Mountain Lion) 镜像文件详解】 MAC OS X 10.8,代号“Mountain Lion”,是苹果公司为Macintosh个人电脑推出的操作系统的一个重要版本。该系统发布于2012年,是苹果在OS X系列中的第14个主要版本...
"darwin.iso"文件可能是用于VMware的启动引导ISO,它包含了Mac OS X的启动所需核心组件。 2. **安装VMware**: 安装适用于你操作系统的VMware版本。确保你的VMware版本支持Mac OS X作为客户机操作系统,因为不是所有...
**Mac OS X Lion 10.7.5 知识点详解** Mac OS X Lion(美洲狮)是苹果公司推出的一款操作系统,属于Mac OS X系列的第8个主要版本,其内部版本号为10.7。Lion在2011年发布,带来了许多新的特性和改进,旨在提升用户...
- 选择带有黄色图标标示的“Mac OS X”项,即为启动U盘。 2. **选择安装语言**: - 在出现的语言选择界面中,选择需要使用的语言。 3. **格式化目标硬盘**: - 使用磁盘工具选择目标硬盘(通常是第一个硬盘),并...
【MAC os 安装助手】是专为苹果Mac操作系统设计的一款辅助工具,旨在帮助用户更加便捷、高效地完成MAC系统的安装过程。在MAC操作系统的世界中,安装助手扮演着引导者和教练的角色,尤其对于初次接触Mac系统的用户来...