如果有一个应用程序可以自行启动,那么最有效的查找位置是哪里?有没有人有一份全面的列表,列出在哪里可以检查启动项、登录项、登录挂钩、Cron、内核扩展等...
此时我忘记了一半文件夹/plist 文件在哪里。我希望有人有一份可以分享的备忘单。
基本上,我正在寻找 Mac OS 自动启动应用程序或脚本的最常见位置的列表(例如:登录时或按计划等)
答案1
启动时运行的应用程序:
/Library/StartupItems
- 标准启动项在这里
sudo launchctl list
/Library/LaunchDaemons
或者查看/System/Library/LaunchDaemons
设置为无需有人登录即可运行的 launchd plist。注意:列出的文件夹中的某些 .plist 文件不会出现,launchctl list
因为它们未被加载运行。
在用户登录时运行的应用程序:
通过前往系统偏好设置中的帐户偏好设置窗格来检查您的登录项。
检查一下~/Library/LaunchAgents
,/Library/LaunchAgents/
以及/System/Library/LaunchAgents
在用户登录时运行的 launchd .plists - 您可以使用sudo launchctl list
它来查看哪些已加载。
按计划运行的应用程序:
在终端中:crontab -e
将显示使用 cron 安排在特定时间运行的项目。LaunchAgents
或LaunchDaemons
文件夹中的任何项目都可以设置为按间隔运行,也可以在其 .plist 文件中定义
内核扩展
要查看加载了哪些内核扩展,您可以使用(可以通过单击 Apple 菜单时Applications/Utilites/System Profiler.app
按住来快速打开- 关于本机...在 10.5+ 中更改为系统分析器...)option
kextstat
或者您也可以在命令行上运行。
登录/注销钩子
要查明是否安装了登录或注销钩子以及找到脚本文件的位置,您可以运行以下命令:
defaults read com.apple.loginwindow LoginHook
和defaults read com.apple.loginwindow LogoutHook
或者同时获得两者:
/usr/libexec/PlistBuddy -c Print /var/root/Library/Preferences/com.apple.loginwindow.plist | grep 'Hook'
答案2
正如 loxp 所说,用户的启动选项中可以找到一些内容,但不是全部。
有些东西配置为由 launchd 在不同时间启动。您可以查看文件系统以找出正在启动的内容(我忘记了确切的路径),或者抓取林贡并查看其列出了什么。