← 返回

卸载哪吒 Agent

停服务、删 systemd 单元、清目录与残留进程,最后自己验证一遍。支持带随机后缀的命名。

需要 root

一键执行

curl -fsSL https://www.moiu.cn/scripts/nezha-uninstall.sh | bash

脚本源码

#!/usr/bin/env bash
# 卸载哪吒探针 Agent
#
# 需要 root。停服务、删 systemd 单元、删安装目录与日志、清残留进程。
# 支持 nezha-agent 以及带随机后缀的命名(nezha-agent-xxxxxxxx)。

set -e

# 需要 root:下面的系统级改动都直接执行,不再逐条 sudo
if [ "$(id -u)" -ne 0 ]; then
    echo '[!] 这个脚本需要 root 权限,请用 sudo 重新运行:'
    echo '    curl -fsSL 脚本地址 | sudo bash'
    echo '    或已经下载到本地:sudo bash 本文件'
    exit 1
fi


echo '====== 卸载哪吒 Agent ======'

UNITS=$(systemctl list-unit-files --type=service 2>/dev/null | awk '/^nezha-agent/ {print $1}')
if [ -z "$UNITS" ]; then
    echo '[*] 未发现 nezha-agent 相关服务'
else
    echo '[*] 发现服务:'
    printf '    - %s\n' $UNITS
fi

echo '[1/4] 停止并禁用服务...'
for unit in $UNITS; do
    systemctl stop "$unit" 2>/dev/null || true
    systemctl disable "$unit" 2>/dev/null || true
    echo "    -> 已处理 $unit"
done

echo '[2/4] 删除 systemd 单元文件...'
find /etc/systemd /lib/systemd /usr/lib/systemd -name 'nezha-agent*.service' -delete 2>/dev/null || true
rm -f /etc/systemd/system/multi-user.target.wants/nezha-agent*.service 2>/dev/null || true

echo '[3/4] 删除安装目录与日志...'
rm -rf /opt/nezha/agent /var/log/nezha /etc/nezha

echo '[4/4] 重载 systemd 并清理残留进程...'
systemctl daemon-reload
systemctl reset-failed 2>/dev/null || true
pkill -9 -f '[n]ezha-agent' 2>/dev/null || true

echo ''
echo '====== 验证 ======'
if pgrep -f '[n]ezha-agent' >/dev/null 2>&1; then
    echo '  [!] 仍有 nezha-agent 进程,请手动检查'
else
    echo '  [√] 无残留进程'
fi
if systemctl list-unit-files 2>/dev/null | grep -q '^nezha-agent'; then
    echo '  [!] 仍有服务文件残留'
else
    echo '  [√] 无残留服务'
fi
echo ''
echo '如果当初装在 /opt/nezha 以外的位置,请手动确认。'

下载原始文件