真正需要管理的是辅助功能程序的开机自启行为和辅助功能授权状态,而非终端窗口本身;应依次检查登录项、软件内置启动开关、launchd用户代理及辅助功能权限。
终端本身不会“自动运行”辅助功能程序,但 macos 中某些辅助功能(如 voiceover、zoom、switch control)或第三方自动化工具(如 keyboard maestro、bettertouchtool、hammerspoon)可能通过系统级机制在登录时启动,并常驻后台——它们有时会调用终端命令或依赖 launchd 代理运行。真正需要管理的,是这些程序的**开机自启行为**和**辅助功能授权状态**,而非终端窗口本身。
一、检查并禁用辅助功能类程序的登录项
很多辅助工具(例如 Karabiner-Elements、Moom、Rectangle)会在系统设置中注册为登录项,即使你没手动打开终端,它们也会随系统启动并可能调用 shell 脚本。
- 打开 系统设置 → 通用 → 登录项,查找名称含 “Accessibility”、“Control”、“Automation” 或工具名(如 “Karabiner”、“Hammerspoon”)的应用
- 选中后点击减号(−)移除;若需保留但不显示界面,可勾选右侧的 隐藏
- 注意:部分工具(如 BetterTouchTool)在此处显示为“BTT Helper”,不是主程序名,需留意识别
二、关闭软件内置的“随系统启动”开关
不少辅助类 App 在自身设置中独立控制启动逻辑,该设置优先级高于系统登录项,容易被忽略。
- 启动对应软件(如 Voice Control 设置需先开启语音控制,再进系统设置找)
- 点击顶部菜单栏中的软件名 → 设置 / 偏好设置
- 查找 “启动时运行”、“随 macOS 启动”、“Launch at login” 等选项,取消勾选
- 部分工具(如 Hammerspoon)需重启其进程才生效:终端执行
hs -r或在菜单中选 “Reload Config”
三、清理 launchd 用户代理(含终端脚本类启动)
有些自动化脚本或辅助工具会把自己的 .plist 文件放在 ~/Library/LaunchAgents/ 下,由系统在登录时自动加载——这类文件可能直接运行 shell 命令,甚至唤起终端窗口。
- 打开访达,按下 Shift + Cmd + G,输入:
~/Library/LaunchAgents - 查找文件名含
accessibility、auto、helper、hs(Hammerspoon)、karabiner等关键词的.plist - 不确定用途的,可先重命名(如加
.disabled后缀),重启后观察是否影响功能 - 确认无用后,可删除;或用终端卸载:
launchctl unload ~/Library/LaunchAgents/com.example.tool.plist
四、检查辅助功能权限是否被滥用
macOS 要求辅助功能权限才能监控按键、截屏、操控其他应用——某些程序拿到权限后就长期驻留,即使没图形界面也可能后台运行。
- 进入 系统设置 → 隐私与安全性 → 辅助功能
- 查看列表中是否有你不认识、不常用或已卸载但仍存在的程序(如旧版 Alfred、ToDesk、Logi Options+)
- 选中后点击减号(−)移除;若按钮灰显,需先解锁左下角锁图标(输入密码)
- 移除后,该程序下次尝试调用辅助 API 时会重新弹窗请求,可借此判断它是否真在后台活跃
不复杂但容易忽略:终端只是执行环境,真正“自动运行”的是那些被系统信任、有权限、又悄悄注册了启动路径的辅助类程序。从登录项、软件内设、launchd 代理、辅助权限四层排查,基本能定位并切断源头。











