ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OpenClaw教程(十)—— 彻底告别!OpenClaw 卸载不残留指南:CLI、Gateway 与系统服务清理实操

OpenClaw教程(十)—— 彻底告别!OpenClaw 卸载不残留指南:CLI、Gateway 与系统服务清理实操 1. 卸载 OpenClaw 后为什么还有残留CLI、Gateway 与系统服务清理实操OpenClaw 卸载不残留这件事我踩过的坑比想象中多。很多人执行完openclaw uninstall就以为万事大吉结果重启机器后发现 Gateway 端口还在监听或者launchctl list | grep openclaw还能看到服务项。这篇就聚焦一个具体场景你已经按教程部署过 OpenClaw现在想彻底卸载需要把 CLI 命令、Gateway 进程、系统服务launchd/systemd以及残留文件全部清理干净。先说清楚 OpenClaw 的组件结构不然后面清理容易漏。它大致分四层最上层是 CLI 工具通过 npm/pnpm/bun 全局安装中间是 Gateway 服务进程负责模型路由和会话管理底层是系统服务注册macOS 的 LaunchAgent 或 Linux 的 systemd user service最后是数据目录~/.openclaw/配置、会话、记忆、工作区。openclaw uninstall默认只停 Gateway 并移除系统服务注册CLI 工具和数据目录往往保留。这就是为什么很多人卸载后openclaw命令还能用、~/.openclaw还占着几百 MB。适合谁看已经部署过 OpenClaw、现在要迁移机器或彻底移除的开发者遇到卸载后端口占用、服务重启自启、磁盘空间没释放的人。下面按“备份 → 停止服务 → 卸载 → 清理残留 → 验证”的顺序走每条命令都可直接复制。2. TaoToken 前置准备卸载前先确认模型接入配置是否需要保留在动手卸载之前有一个容易被忽略的点如果你的 OpenClaw 是通过 TaoToken 接入模型的卸载前最好确认一下配置里有没有需要留存的 API Key 和 Base URL。因为~/.openclaw/config.json里通常存着模型接入信息一旦--all删除就找不回来了。TaoToken 的接入方式很直接Base URL 用https://taotoken.net/apiAPI Key 在控制台生成。如果你打算之后在新机器上重新部署 OpenClaw建议先把这段配置备份出来。我实测下来最稳妥的做法是单独复制一份 config.json而不是依赖openclaw backup create因为后者可能把整个数据目录打包体积大且包含会话历史。具体操作先看一眼当前配置里模型相关的字段。cat ~/.openclaw/config.json | grep -A 5 -i model\|base_url\|api_key如果输出里有taotoken.net/api和对应的 Key说明你用的是 TaoToken 接入。这时候把这几行单独存到一个文本文件里或者直接复制整个 config.json 到安全位置cp ~/.openclaw/config.json ~/openclaw-config-backup.json为什么要做这一步因为 OpenClaw 的模型配置和 Gateway 服务是绑定的卸载 Gateway 后配置虽然可能保留但如果你后续用--all清理配置也会一起没。提前备份能省去重新申请 Key 和填写 Base URL 的麻烦。TaoToken 的 Key 在控制台可以重新生成但如果你有多个项目共用同一个 Key重新配置反而更费事。另外提醒一点如果你在 OpenClaw 里配置过 Coding Plan 或 Claude Code 相关的接入这些信息也可能存在 config.json 或独立的 auth 目录里。卸载前用ls -la ~/.openclaw/看一眼目录结构心里有数再动手。3. 可复制配置停止 Gateway、卸载 CLI 与清理系统服务的完整命令这一节是核心操作区。我按平台分开写你对照自己的系统执行。先做通用准备确认当前状态。openclaw gateway status openclaw --version du -sh ~/.openclaw第一条看 Gateway 是否在跑第二条看 CLI 版本第三条看数据目录占多大。如果gateway status显示 running先停掉openclaw gateway stop然后执行标准卸载。这里有个细节openclaw uninstall默认会交互式确认如果你想跳过确认直接清理 Gateway 和系统服务但保留配置用openclaw uninstall --yes如果你想彻底删除所有数据包括会话、记忆、工作区用openclaw uninstall --all --yes执行前建议先 dry-run 看一眼会删什么openclaw uninstall --dry-run输出会列出将移除的服务名、会话目录大小、记忆数据库大小等。确认无误再执行--all --yes。接下来清理 CLI 工具。根据你当初的安装方式选对应命令# npm 安装 npm uninstall -g openclaw # pnpm 安装 pnpm uninstall -g openclaw # Bun 安装 bun uninstall -g openclaw然后手动清理残留目录。即使--all执行过有些缓存和开发目录可能还在rm -rf ~/.openclaw rm -rf ~/.openclaw-devmacOS 用户额外清理 LaunchAgent 和缓存launchctl unload ~/Library/LaunchAgents/ai.openclaw.gateway.plist rm ~/Library/LaunchAgents/ai.openclaw.gateway.plist rm -rf ~/Library/Caches/openclaw rm -rf ~/Library/Logs/openclawLinux systemd 用户服务清理systemctl --user stop openclaw-gateway.service systemctl --user disable openclaw-gateway.service rm ~/.config/systemd/user/openclaw-gateway.service systemctl --user daemon-reload journalctl --user -u openclaw-gateway --vacuum-all如果装的是系统级服务需要 sudosudo systemctl stop openclaw-gateway.service sudo systemctl disable openclaw-gateway.service sudo rm /etc/systemd/system/openclaw-gateway.service sudo systemctl daemon-reloadWindows 用户删除计划任务schtasks /delete /tn OpenClaw Gateway /fDocker 部署的清理docker stop openclaw docker rm openclaw docker rmi openclaw/openclaw:latest docker volume rm openclaw-data如果是 docker-compose用docker-compose down -v-v会删除卷。4. 验证请求与成功结果确认端口、进程、服务全部干净卸载完不能只看命令返回要实际验证。我按检查清单逐条来每条都给出预期结果。检查 Gateway 状态openclaw gateway status预期显示服务未运行或者提示命令不存在如果 CLI 也卸了。检查系统服务注册macOSlaunchctl list | grep openclaw预期无输出。如果有输出说明 LaunchAgent 没清干净回到上一节手动 unload 并删除 plist。检查 systemd 用户服务Linuxsystemctl --user list-units | grep openclaw预期无输出。检查进程ps aux | grep openclaw预期只有grep openclaw这一行本身没有实际的 openclaw 进程。如果还有用pkill -f openclaw强杀再kill -9 PID兜底。检查端口占用。OpenClaw Gateway 默认端口是 18789lsof -i :18789预期无输出。如果有输出说明还有进程占着端口用lsof -i :18789拿到 PID 后 kill 掉。检查残留文件ls -la ~/.openclaw du -sh ~/.openclaw*预期目录不存在或者为空。如果du还显示占用检查是否有~/.openclaw-dev或~/.local/share/openclawLinux。全部通过后你的 OpenClaw 就算卸载干净了。我实测下来最容易漏的是 macOS 的 LaunchAgent plist 和 Linux 的 linger 设置。如果你在 Linux 上启用了 lingerloginctl enable-linger即使服务停了用户会话也可能保持建议取消sudo loginctl disable-linger $USER5. 本篇常见错排查401、local proxy failed、reading choices 与 OAuth 报错卸载过程中或卸载后重新接入时容易碰到几类报错。我按真实遇到的整理。报错一401 Unauthorized。这个通常出现在你卸载后重新安装、但 config.json 里的 API Key 失效或 Base URL 写错。检查~/.openclaw/config.json里的base_url是否为https://taotoken.net/apiKey 是否与控制台一致。如果用的是 TaoToken去控制台重新生成 Key 再填入。注意 Base URL 不要带 UTM 参数API 调用只认https://taotoken.net/api。报错二local proxy failed。这个报错说明 Gateway 尝试走本地代理但连接失败。常见原因是卸载不彻底旧 Gateway 进程还占着端口新进程起不来。解决lsof -i :18789找到占用进程 kill 掉再openclaw gateway restart。如果还不行检查是否有残留的 launchd/systemd 服务在自动拉起旧进程。报错三reading choices 相关错误。这类报错一般出现在模型返回格式解析失败时和卸载本身关系不大但如果你卸载后重装发现会话历史丢失导致上下文错乱可能触发。确认~/.openclaw/sessions/是否被--all删除了。如果删了重新开始新会话即可旧会话无法恢复。报错四OAuth 相关报错。如果你在 OpenClaw 里配置过 OAuth 接入比如某些模型服务卸载后 auth 目录可能残留 token 文件重装后读取旧 token 导致鉴权失败。清理~/.openclaw/auth/目录重新走 OAuth 流程。排查通用步骤先看日志openclaw logs --last 100再跑openclaw doctor做诊断。如果 CLI 已经卸载直接看系统日志macOS 用log show --predicate process openclaw --last 1hLinux 用journalctl --user -u openclaw-gateway --since 1 hour ago。6. 卸载后的模型接入与 Coding Plan 重新配置卸载干净之后如果你打算在新机器上重新部署或者只是想换个方式接入模型这里给一条清晰的路径。OpenClaw 的模型接入核心就是三件套Base URL、API Key、Model ID。无论你用 CLI 还是配置文件这三个字段必须一致。Base URL 固定用https://taotoken.net/api。API Key 去控制台生成路径是 API Keys 页面。Model ID 根据你用的模型填比如 Claude 系列或 GPT 系列具体以文档为准。配置写入~/.openclaw/config.json的 model 字段或者通过 CLI 交互式设置。如果你之前用的是 Coding Plan 做长期编码任务重新配置时注意 Plan 的额度是绑定账号的换机器不影响。Claude Code 相关的接入如果之前配过卸载后需要重新走一遍 OAuth 或填 Key。Codex 的 auth.json 如果存在~/.openclaw/auth/下卸载时会被清掉重装后重新生成即可。验证接入是否成功最直接的方式是用模型对话功能发一条测试消息。如果返回正常说明 Base URL 和 Key 都对。如果报 401回到第 5 节排查。接入文档里有完整的字段说明和示例配置遇到不确定的字段先查文档再改避免反复试错。最后说一个实用技巧卸载前用openclaw uninstall --dry-run看一眼删除清单比直接--all --yes安全得多。我每次迁移机器都先 dry-run确认会话和记忆数据确实不需要了再执行彻底删除。备份 config.json 这个动作花不了十秒但能省掉重新申请 Key 和填写 Base URL 的麻烦。
返回列表