Claude Code无人值守部署教程

不少开发者希望在服务器上让 Claude Code 自动处理代码生成或审查任务,但它的默认模式是交互式终端,需要人工输入指令。
本文会一步步教你把它改成无人值守模式,并作为系统服务长期稳定运行。

理解无人值守场景与准备工作

无人值守在这里指:通过脚本或管道把任务指令传给 Claude Code,自动执行后从标准输出拿到结果。
常见场景包括:定时分析代码仓库、自动生成单元测试、批量修复 lint 错误等。

你需要准备:

  • 一台 Linux 服务器(本文以 Ubuntu 22.04 为例)
  • Node.js 16 或更高版本(推荐 18 LTS)
  • Anthropic 账号与 API Key(从 console.anthropic.com 获取)
  • 基本命令行操作能力(会执行命令即可)

安装 Claude Code CLI 并配置密钥

登录服务器后,先确保 Node.js 和 npm 已安装:

node -v   # 检查版本
npm -v

如果未安装,用以下命令安装 Node.js 18:

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

然后全局安装 Claude Code CLI:

npm install -g @anthropic-ai/claude-code

安装完成后,设置 API Key 环境变量(建议写入 ~/.bashrc 使其永久生效):

echo 'export ANTHROPIC_API_KEY="你的API密钥"' >> ~/.bashrc
source ~/.bashrc

验证密钥是否生效:

echo $ANTHROPIC_API_KEY

如果看到输出密钥字符串,说明配置成功。

编写自动化脚本实现非交互运行

Claude Code 支持通过 --non-interactive 参数接收管道输入并直接输出结果。
创建一个脚本 /opt/claude-auto.sh,内容如下:

#!/bin/bash
INPUT="$1"
echo "$INPUT" | claude-code --non-interactive 2>/dev/null

添加执行权限:

chmod +x /opt/claude-auto.sh

测试运行:

/opt/claude-auto.sh "Write a bash function to check disk usage"

你会看到 Claude Code 直接输出生成的代码(无交互提示)。
如果你需要持久化输出,可以在脚本中把结果重定向到文件:

echo "$INPUT" | claude-code --non-interactive > /tmp/claude_output.txt 2>/dev/null

配置 systemd 服务实现开机自启

为了让它长期在后台等待任务,我们可以创建一个 systemd 服务,把脚本作为守护进程运行。
首先创建服务文件 /etc/systemd/system/claude-auto.service

[Unit]
Description=Claude Code Unattended Service
After=network.target

[Service]
Type=simple
User=your_username
ExecStart=/opt/claude-auto.sh ""
Restart=on-failure
RestartSec=5
Environment=ANTHROPIC_API_KEY=你的API密钥

[Install]
WantedBy=multi-user.target

注意将 your_username 替换为实际用户名,并将 API Key 直接写进 Environment 字段。
然后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable claude-auto
sudo systemctl start claude-auto

检查状态:

sudo systemctl status claude-auto

如果看到 active (running) 说明服务运行正常。
不过上面的脚本默认没有持续任务,服务会立即退出,所以我们需要让脚本循环读取任务队列。
更实用的方式是把 Claude Code 集成到你的 CI/CD 或定时任务中,而不是做成常驻服务。
这里展示一个更合理的方案:使用 cron 定时执行脚本。

打开 crontab:

crontab -e

添加一行(每天凌晨三点执行一次):

0 3 * * * /opt/claude-auto.sh "Review all Python files in /var/www and suggest improvements" >> /var/log/claude_daily.log 2>&1

这样就能实现无人值守的自动化代码审查。

避坑指南与常见问题

  • API 密钥泄露:不要将密钥写进脚本里提交到 Git。推荐使用环境变量或 .env 文件加载。
  • 非交互模式不生效:确保使用 --non-interactive 参数,且输入通过管道传递。如果直接运行命令不加参数,会进入交互模式。
  • 输出不完整:Claude Code 的输出可能包含退格符等控制字符。可以在脚本末尾用 cat 或重定向时添加 2>/dev/null 过滤错误信息。
  • 长时间无响应:检查网络连通性,确认服务器能访问 api.anthropic.com。也可以在脚本中添加超时处理:timeout 30 claude-code ...
  • 内存不足:如果处理大文件,建议在服务器上设置 swap 或增加内存,否则 Node.js 进程可能被 OOM Killer 杀掉。

如果你在处理过程中遇到其他异常,建议先查看日志文件 /tmp/claude_output.txt 或系统日志 journalctl -u claude-auto

希望这份教程能帮你顺利搭建 Claude Code 的无人值守环境。
根据你的实际任务调整输入指令和调度频率即可,遇到问题优先检查 API 配额和网络连接。

分享到:
上一篇
服务器装AI大脑:零基础给服务器装个AI大脑
下一篇
AI定时任务运维实操指南:从配置cron到排错全流程
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意