活动监视器不直接标注“脚本进程”,需通过进程名、命令行参数、启动路径和行为特征交叉识别;重点筛选python、sh、osascript等解释器进程,检查命令行、签名状态、网络连接及自动启动机制(LaunchAgents、shell配置、自动化工具),确认后安全终止并清理持久化配置。
活动监视器本身不直接标注“脚本进程”,但 macos 中大量后台脚本(如 python、shell、applescript、javascript for automation)常以通用解释器进程形式运行(如 python3、sh、osascript、node),容易被忽略。关键在于结合进程名、命令行参数、启动路径和行为特征交叉识别。
在活动监视器中筛选可疑脚本类进程
启动活动监视器后,执行以下操作:
- 点击顶部菜单栏【显示】→【所有进程,分层显示】,展开父子关系,便于发现由终端或自动化工具派生的脚本子进程
- 右键点击列标题区域 → 勾选【命令行】和【PID】,让每行显示完整启动命令(这是识别脚本的关键线索)
- 切换到【CPU】或【能耗】标签页,按【% CPU】排序,重点关注长期高于15%且名称为
python、sh、bash、zsh、osascript、node、perl的条目 - 在右上角搜索栏输入
python或sh,快速过滤出解释器类进程;若看到路径含~/Library/Application Support/、/tmp/、/var/folders/或随机命名的 .py/.sh 文件,高度可疑
验证脚本来源与真实意图
选中疑似脚本进程后,双击或点击 ⓘ 按钮查看详情:
- 在【常规】标签页确认“签发者”是否为“已确认”——未签名或“无法验证”的脚本需警惕
- 切换到【打开的文件和端口】标签页,检查是否连接了异常远程地址(如陌生 IP + 高端口)、持续写入临时目录或读取敏感位置(如
~/Documents、~/Desktop) - 重点看【命令行】字段:若显示类似
/usr/bin/python3 /private/var/folders/xx/xxx/T/launcher_2026.py --auto或/bin/zsh /Users/xxx/.config/auto-run.sh,说明是用户级自启脚本 - 若命令行为空或仅显示解释器名(如
/bin/bash),可回到终端执行:ps -p [PID] -o pid,ppid,comm,args,补全真实调用链
定位脚本的自动启动机制
多数后台脚本并非手动运行,而是通过系统机制持久化。需排查三类常见源头:
-
LaunchAgents:检查
~/Library/LaunchAgents/下 plist 文件,运行 launchctl list | grep -E "(py|sh|js)" 快速筛查加载中的脚本服务 -
Shell 登录脚本:查看
~/.zshrc、~/.zprofile、~/.bash_profile是否包含nohup python3 ... &或osascript -e 'do shell script ...'类后台调用 -
自动化工具残留:如 Keyboard Maestro、Hammerspoon、Automator 应用程序包内嵌的脚本,其进程名可能为
kmengine、hsd或automator,需结合【用户】列为当前用户名且无前台窗口来判断
安全终止与后续清理
确认为非必要脚本进程后,避免直接强制退出解释器主进程(可能影响其他任务),推荐分步处理:
- 先在活动监视器中选中该进程 → 点击左上角 × → 选择【退出进程】(发送 SIGTERM),观察是否自动重启
- 若立即复活,说明有 launchd 或 shell 脚本拉起,此时应进入终端:sudo launchctl unload -w ~/Library/LaunchAgents/com.example.script.plist(替换为实际 plist 路径)
- 清理对应脚本文件及配置:删除
~/Library/LaunchAgents/中相关 plist、清空可疑的/tmp/脚本、注释掉 shell 配置文件中异常的后台启动行 - 重启后再次打开活动监视器,切换至【所有进程】并按【启动时间】排序,确认该脚本未再次出现


















