核心思路
将 OpenClaw 从一个手动启动的进程,转变为由系统守护进程管理的、支持自动重启、日志轮转和状态监控的 常驻服务。

最简单快速 - 使用 nohup 或 tmux (适合临时测试)
这种方式简单,但抗干扰能力弱,适合短期验证。
# 使用 tmux (可随时断开和重连会话) tmux new -s openclaw # 在tmux会话中启动 python -m openclaw.main --port 8000 --model your_model_path # 按 Ctrl+B, 然后按 D 脱离会话 # 重新连接: tmux attach -t openclaw
检查运行状态:
ps aux | grep openclaw tail -f openclaw.log
推荐生产级 - 使用 systemd (适用于 Linux 系统)
这是最专业、稳定的方法,能实现开机自启、崩溃重启、资源控制和集中日志管理。
-
创建服务文件
sudo nano /etc/systemd/system/openclaw.service
-
编辑服务配置 (请根据您的实际路径和参数修改)
[Unit] Description=AI Xiaolongxia OpenClaw Service After=network.target Wants=network.target [Service] Type=simple User=your_username # 建议为服务创建一个专用用户,如 `openclaw` WorkingDirectory=/path/to/openclaw/project Environment="PATH=/usr/local/bin:/usr/bin:/bin" # 重要:使用绝对路径,如果您使用 conda 环境: ExecStart=/home/your_username/miniconda3/envs/openclaw_env/bin/python -m openclaw.main --port 8000 --model /path/to/model --host 0.0.0.0 # 或者如果直接使用 python,确保是环境中的python # ExecStart=/usr/bin/python3 -m openclaw.main ... Restart=always # 进程退出后总是重启 RestartSec=5 # 等待5秒后重启 StandardOutput=journal StandardError=journal SyslogIdentifier=openclaw # 可选:资源限制 # MemoryMax=4G # CPUQuota=200% [Install] WantedBy=multi-user.target
-
启用并启动服务
# 重载systemd配置 sudo systemctl daemon-reload # 设置开机自启 sudo systemctl enable openclaw.service # 立即启动服务 sudo systemctl start openclaw.service
-
常用管理命令
# 查看状态和实时日志 sudo systemctl status openclaw.service sudo journalctl -u openclaw.service -f # 重启、停止服务 sudo systemctl restart openclaw.service sudo systemctl stop openclaw.service # 查看完整日志 sudo journalctl -u openclaw.service --since today
使用 Docker 容器化部署
这是最佳实践,能提供最好的环境隔离、一致性和便捷的迁移/扩展能力。
-
创建 Dockerfile (如果项目未提供)
FROM pytorch/pytorch:latest WORKDIR /app COPY . . RUN pip install -r requirements.txt EXPOSE 8000 CMD ["python", "-m", "openclaw.main", "--port", "8000", "--model", "/app/models/default_model", "--host", "0.0.0.0"]
-
构建并运行容器 (以
--restart always策略运行)# 构建镜像 docker build -t openclaw:latest . # 以后台模式运行,并设置总是重启策略 docker run -d \ --name openclaw_server \ --restart always \ -p 8000:8000 \ -v /path/to/your/models:/app/models:ro \ openclaw:latest # 查看日志 docker logs -f openclaw_server
-
使用 Docker Compose 管理 (更推荐)
# docker-compose.yml version: '3.8' services: openclaw: image: openclaw:latest # 或使用构建指令 build: . container_name: openclaw_server restart: always ports: - "8000:8000" volumes: - ./models:/app/models:ro - ./logs:/app/logs # 可选:设置资源限制 # deploy: # resources: # limits: # cpus: '2.0' # memory: 4Gdocker-compose up -d docker-compose logs -f
高级技巧与监控
-
健康检查
- 在 Docker 或 systemd 中配置健康检查端点,定期调用模型的
/health或/v1/models接口,确保服务响应正常。
- 在 Docker 或 systemd 中配置健康检查端点,定期调用模型的
-
使用反向代理 (如 Nginx)
- 在服务前端部署 Nginx,可以实现:
- 负载均衡 (如果您启动多个实例)
- SSL/TLS 终结 (HTTPS)
- 静态文件服务
- 访问控制和限流
upstream openclaw_backend { server 127.0.0.1:8000; # server 127.0.0.1:8001; # 可以启动第二个实例 }
server { listen 80; server_name your_domain.com; client_max_body_size 100M;
location / { proxy_pass http://openclaw_backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } - 在服务前端部署 Nginx,可以实现:
-
日志管理
- 确保 OpenClaw 配置了详细的日志记录。
- 对于 systemd,使用
journalctl进行管理。 - 对于 Docker,配置日志驱动和轮转策略,避免日志占满磁盘。
# Docker 日志轮转配置 (在 daemon.json 中) { "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-file": "3" } }
-
监控与告警
- 基础监控:使用
htop,nvidia-smi(GPU) 监控资源使用。 - 进程监控:使用
supervisor(作为 systemd 的替代) 或pm2(如果习惯 Node.js 生态)。 - 应用监控:集成 Prometheus + Grafana,收集模型服务的 QPS、响应延迟、错误率等指标。
- 外部监控:使用 UptimeRobot 或自建监控脚本,定期测试 API 接口可用性。
- 基础监控:使用
总结建议
- 个人学习/测试:使用 方案一 (tmux) 或 方案三 (Docker) 快速启动。
- 小型生产环境/长期运行:方案二 (systemd) 是最直接稳定的选择。
- 团队协作/云部署/追求最佳实践:方案三 (Docker Compose) 是首选,环境干净,迁移极其方便。
无论选择哪种方案,核心都是 配置“自动重启”机制 (Restart=always, --restart always),这是保障 24 小时不间断运行的关键,务必配置好日志记录,以便在出现问题时能快速定位。
请根据您的具体环境、技术栈和运维习惯,选择最适合的方案。