最近发现有一个已经卸载掉的软件(Paragon NTFS for Mac)在开机时提示试用已到期需要激活,于是检查开机启动项。

打开 "系统偏好设置 => 用户与群组 => 登陆项",发现并没有这个软件的启动项,网上搜了一圈,发现水很深。

Mac下的启动服务主要有三个地方可配置:

  1. 系统偏好设置->帐户->登陆项
  2. /System/Library/StartupItems 和 /Library/StartupItems/
  3. launchd 系统初始化进程配置。

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 配置,启动服务守护进程。

我的系统版本是 10.13.1,在 /Library/LaunchDaemons/Library/LaunchAgents 目录下发现这个软件的一些东西:

MBP:~ tony$ ll /Library/LaunchDaemons | grep paragon
-rw-r--r--   1 root  wheel   640B 10 26 00:38 com.paragon-software.installer.plist
-rw-r--r--   1 root  wheel   424B  8 21 17:05 com.paragon-software.ntfs.loader.plist
-rw-r--r--   1 root  wheel   515B  8 21 17:04 com.paragon-software.ntfsd.plist

MBP:LaunchDaemons tony$ ll /Library/LaunchAgents | grep paragon
-rw-r--r--   1 root  wheel   553B  8 21 17:05 com.paragon-software.ntfs.notification-agent.plist

全部删掉:

sudo rm /Library/LaunchDaemons/com.paragon-software.installer.plist
sudo rm /Library/LaunchDaemons/com.paragon-software.ntfs.loader.plist
sudo rm /Library/LaunchDaemons/com.paragon-software.ntfsd.plist
sudo rm /Library/LaunchDaemons/com.paragon-software.ntfs.notification-agent.plist

另外补充一下 LaunchDaemons 和 LaunchAgents 的区别:

  • LaunchDaemons 是用户未登陆前就启动的服务(守护进程)。
  • LaunchAgents 是用户登陆后启动的服务(守护进程)。

目录的区别:

  • /System/Library 目录是存放Apple自己开发的软件。
  • /Library 目录是系统管理员存放的第三方软件。
  • ~/Library/ 是用户自己存放的第三方软件。

标签: macos

添加新评论