使用macOS开机时候,常常会发现很多软件开机会自动启动。正常情况可以在系统偏好设置->用户与群组->登陆项中找到相应的设置,没找到的第三方软件,可以通过对应的软件设置中开/关自动启动,但又存在部分流氓软件无法在这两种方式设置。以下是记录如何设置关闭流氓软件自启动项。

macOS 系统的启动项

首先我们需要了解到macOS 系统的启动项会以 .plist 的文件存放:

  • /Library/LaunchDaemons:系统启动时运行,用户不登录也会运行
  • /Library/LaunchAgents:用户登录后运行
  • ~/Library/LaunchAgents:用户自定义的用户启动项
  • /System/Library/LaunchDaemons:系统自带的启动项
  • /System/Library/LaunchAgents:系统自带的启动项

plist的属性设置

plist文件中,有3个属性是控制开机自动启动

  • KeepAlive:决定程序是否需要一直运行,如果是 false 则需要时才启动。默认 false
  • RunAtLoad:开机时是否运行。默认 false
  • SuccessfulExit:此项为 true 时,程序正常退出时重启(即退出码为 0);为 false 时,程序非正常退出时重启。此项设置时会隐含默认 RunAtLoad = true,因为程序需要至少运行一次才能获得退出状态。

设置规则表现

KeepAlive = false的情况

  • RunAtLoad = false :程序只有在有需要的时候运行。
  • RunAtLoad = true :程序在启动时会运行一次,然后等待在有需要的时候运行。
  • SuccessfulExit = true / false :不论 RunAtLoad 值是什么,都会在启动时运行一次。其后根据 SuccessfulExit 值来决定是否重启。

开机不自启

本文主题来了,一般我们安装的第三方软件的自启配置文件存放在/Library/LaunchDaemons/Library/LaunchAgents,所以我们优先检查这2项

  1. 找到对应的 .plist 文件
  2. 删除 SuccessfulExit 属性。
  3. RunAtLoad / KeepAlive 均设为 <false/>