半生听风吟 2025-10-21 16:35 采纳率: 98.6%
浏览 4
已采纳

ESET Mac卸载后残留进程如何彻底清除?

卸载ESET防病毒软件后,部分Mac用户发现系统中仍残留如`esets_daemon`、`esets_helper`等进程在后台运行,导致CPU占用异常或与其他安全软件冲突。即使通过常规方式删除应用程序并使用卸载工具,这些进程仍可能未被彻底清除。问题通常源于系统扩展、启动项或配置文件未被完全移除。如何手动识别并安全删除这些残留进程及相关内核扩展(如`com.eset.kext.esets_kac`),同时清理LaunchDaemons和偏好设置文件,成为确保系统干净的关键步骤。此问题在macOS Sonoma及后续版本中尤为常见,需谨慎操作以避免影响系统稳定性。
  • 写回答

1条回答 默认 最新

  • 爱宝妈 2025-10-21 16:37
    关注

    深度解析 macOS 卸载 ESET 后残留进程的清理方案

    1. 问题背景与现象分析

    在 macOS 系统中,尤其是 Sonoma 及后续版本(如 macOS 14+),ESET 防病毒软件卸载后常出现后台残留进程,如 esets_daemonesets_helper 持续运行。这些进程不仅占用 CPU 资源,还可能与其他安全产品(如 Microsoft Defender、CrowdStrike Falcon)产生冲突,导致系统性能下降或内核级异常。

    根本原因在于 ESET 安装过程中注册了多个系统级组件,包括:

    • 内核扩展(Kext):如 com.eset.kext.esets_kac
    • LaunchDaemons 启动项
    • 偏好设置文件(.plist)
    • 用户代理(User Agents)和辅助工具(Accessibility Tools)

    即使使用官方卸载工具,部分组件仍可能因权限限制或系统完整性保护(SIP)未被彻底清除。

    2. 残留组件识别流程

    为精准定位残留项,建议按以下顺序执行诊断命令:

    # 查看正在运行的相关进程
    ps aux | grep -i eset
    
    # 列出加载的内核扩展
    kextstat | grep -i eset
    
    # 检查系统扩展(macOS 12+ 使用 systemextensionsd)
    systemextensionsctl list
    
    # 查找 LaunchDaemon 配置文件
    ls /Library/LaunchDaemons/ | grep -i eset
    ls /Library/LaunchAgents/ | grep -i eset
    
    # 搜索偏好设置文件
    find /Library/Preferences/ -name "*eset*" 2>/dev/null
    find ~/Library/Preferences/ -name "*eset*" 2>/dev/null
        

    3. 残留项目清理步骤

    根据识别结果,逐步移除各层级残留内容:

    组件类型路径/标识符操作命令
    内核扩展com.eset.kext.esets_kacsudo kextunload /Library/Extensions/Esets.kext
    LaunchDaemon/Library/LaunchDaemons/com.eset.remoteadmin.RAagent.plistsudo launchctl bootout system /Library/LaunchDaemons/com.eset.*
    系统扩展ESET Endpoint Antivirussystemextensionsctl uninstall com.eset.endpoint
    配置文件/Library/Preferences/com.eset.*sudo rm -rf /Library/Preferences/com.eset.*
    应用支持目录/Library/Application Support/ESETsudo rm -rf "/Library/Application Support/ESET"

    4. 安全性与系统完整性考量

    在 macOS Sonoma 中,系统扩展机制已从传统 Kext 迁移至 System ExtensionsDriverKit,但 ESET 仍可能混合使用旧架构。操作前需确认:

    1. SIP(System Integrity Protection)状态:csrutil status
    2. 是否启用锁定模式(Lockdown Mode),该模式会限制第三方驱动加载
    3. 确保以管理员身份执行命令,并备份关键数据

    若系统启用了 SIP,部分路径(如 /System/Library/Extensions)无法修改,应优先通过 kextunload 卸载而非直接删除。

    5. 自动化检测脚本示例

    可编写 Shell 脚本批量检测并提示残留项:

    #!/bin/zsh
    echo "🔍 正在扫描 ESET 残留组件..."
    
    if pgrep -x "esets_daemon" > /dev/null; then
        echo "⚠️  发现运行中的 esets_daemon"
    fi
    
    if kextstat | grep -q "eset"; then
        echo "⚠️  已加载 ESET 内核扩展"
    fi
    
    if [ -f "/Library/LaunchDaemons/com.eset.remoteadmin.RAagent.plist" ]; then
        echo "⚠️  存在 LaunchDaemon 配置文件"
    fi
    
    echo "✅ 扫描完成,请根据提示进行清理。"
        

    6. 流程图:ESET 残留清理决策树

    graph TD A[开始] --> B{是否发现 esets_* 进程?} B -- 是 --> C[停止相关进程] B -- 否 --> D[进入下一步] C --> E[卸载内核扩展 kextunload] E --> F[停用 LaunchDaemons] F --> G[删除配置文件与支持目录] G --> H[重启系统验证] H --> I[结束] D --> F

    7. 验证与后续监控

    完成清理后,执行以下命令验证效果:

    • ps aux | grep -i eset —— 确认无进程残留
    • kextstat | grep -i eset —— 确认 Kext 已卸载
    • systemextensionsctl list —— 检查系统扩展状态
    • 重启系统后观察 Activity Monitor 是否仍有异常 CPU 占用

    建议部署日志审计策略,定期检查 /var/log/system.log 或使用 log show --predicate 'subsystem contains "eset"' 追踪潜在调用痕迹。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月22日
  • 创建了问题 10月21日