`

Mac OS启动服务

 
阅读更多

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启动服务优化高级篇.docx

    Mac OS的启动服务优化是一个关键的系统性能提升策略,尤其对于高级用户来说,理解并掌握这一领域的知识至关重要。本文将深入探讨如何优化Mac OS的启动服务,重点在于launchd配置的高级技巧。 首先,让我们了解Mac ...

    mac os U盘启动引导文件

    标题中的“mac os U盘启动引导文件”指的是在苹果Mac OS操作系统环境下,利用U盘创建一个可引导的启动媒介,以便在没有安装Mac OS的系统上启动计算机或进行系统维护工作,比如修复驱动程序。这种方法特别适用于在...

    MAC OS X Snow Leopard 10.6 引导镜像Rebel_EFI和darwin

    Rebel EFI的工作原理是模拟Apple的EFI(Extensible Firmware Interface)环境,使得非Apple硬件能够理解和处理MAC OS X的启动流程。这为那些希望在个人电脑上体验MAC OS X的用户提供了可能性,但请注意,这可能违反...

    引导Mac OS X 10.7的工具

    标题中的“引导Mac OS X 10.7的工具”指的是一个用于启动并安装苹果公司操作系统Mac OS X 10.7(代号Lion)的辅助程序或软件。Mac OS X 10.7是苹果在2011年发布的一个重大更新,引入了许多新功能,如全屏应用、...

    MAC OS SATA 补丁

    标题中的“MAC OS SATA 补丁”指的是针对苹果操作系统(MAC OS X)的SATA驱动程序更新或修改,主要是为了解决系统无法正确识别大于128GB硬盘容量的问题。在早期版本的MAC OS X中,由于驱动兼容性限制,可能会出现只...

    VMware安裝Mac OS

    1. **启动虚拟机**:完成虚拟机配置后,启动虚拟机并进入Mac OS 10.7.2安装界面。 2. **语言和地区设置**:根据个人喜好选择语言和地区。 3. **磁盘工具**:在安装过程中,使用磁盘工具格式化虚拟硬盘,确保格式为...

    Mac OS X 启动盘_darwin_snow_legacy

    **Mac OS X 启动盘_darwin_snow_legacy** 这个标题所指的"Mac OS X 启动盘_darwin_snow_legacy"是与苹果公司的操作系统Mac OS X相关的一个特殊版本,它主要用于创建能够启动Mac电脑的安装介质。这里的"darwin"是Mac...

    vm12安装mac OS

    在学习MAC OS、iOS开发和测试时,没有Mac电脑的限制是很大的障碍。幸运的是,vm12安装macOS可以帮助我们解决这个问题。本文将详细介绍vm12安装macOS的步骤,使您可以轻松地在Windows系统上安装和运行macOS。 知识点...

    Mac OS X 10.5 Leopard ISO

    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 Lion 10.7.3是苹果公司推出的一款操作系统,属于Mac OS X系列的一部分,发布于2012年。这一版本是Lion操作系统的重要更新,它在10.7.2的基础上进行了多项改进和...

    Apple Training Series - Mac OS X Support Essentials v10,6.pdf

    根据给定的文件信息,我们可以深入探讨与"Apple Training Series - Mac OS X Support Essentials v10,6"相关的IT知识,这本教材是苹果官方针对其操作系统Mac OS X(版本10.6)的支持和维护培训资料。由Kevin M. ...

    mac OS X Unlocker

    5. **安装mac OS**:解锁完成后,你可以在虚拟机软件中启动这个已解锁的虚拟机配置,并按照mac OS的安装流程进行操作。记得准备好mac OS的ISO镜像文件,这是安装过程中需要的。 6. **遵循教程**:在提供的解锁器...

    HJMac 在Vmware上安装Mac OS的启动引导程序

    HJMac.iso文件就是专为这个目的设计的一个启动引导程序,它允许用户在VMware上顺利安装Mac OS。本文将详细介绍如何利用HJMac.iso在VMware上安装Mac OS的启动引导程序,并探讨相关知识点。 首先,我们要理解虚拟化...

    AMD装MAC OS X10.6教材

    3. **BIOS设置**:说明如何进入BIOS并调整启动选项,以支持从USB或DVD启动MAC OS X安装媒体。 4. **安装工具**:介绍PlexTools、Clover或其他引导加载器的使用方法,它们能让AMD系统识别并启动MAC OS X安装程序。 ...

    MAC OS.X.10.8.iso 镜像文件

    【MAC OS X 10.8 (Mountain Lion) 镜像文件详解】 MAC OS X 10.8,代号“Mountain Lion”,是苹果公司为Macintosh个人电脑推出的操作系统的一个重要版本。该系统发布于2012年,是苹果在OS X系列中的第14个主要版本...

    mac os x引导工具

    "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 10.7.5 知识点详解** Mac OS X Lion(美洲狮)是苹果公司推出的一款操作系统,属于Mac OS X系列的第8个主要版本,其内部版本号为10.7。Lion在2011年发布,带来了许多新的特性和改进,旨在提升用户...

    教你如何制作OS X Lion启动U盘与使用U盘安装系统

    - 选择带有黄色图标标示的“Mac OS X”项,即为启动U盘。 2. **选择安装语言**: - 在出现的语言选择界面中,选择需要使用的语言。 3. **格式化目标硬盘**: - 使用磁盘工具选择目标硬盘(通常是第一个硬盘),并...

    MAC os 安装助手

    【MAC os 安装助手】是专为苹果Mac操作系统设计的一款辅助工具,旨在帮助用户更加便捷、高效地完成MAC系统的安装过程。在MAC操作系统的世界中,安装助手扮演着引导者和教练的角色,尤其对于初次接触Mac系统的用户来...

Global site tag (gtag.js) - Google Analytics