具体方法取决于你的安装方式和操作系统(通常是Linux),以下是几种最常见和推荐的方案:

使用 Systemd 服务(推荐,适用于Linux服务器/长期运行)
这是最稳健的方法,可以管理进程的启动、停止、重启,并设置开机自启。
步骤:
-
创建服务文件
sudo nano /etc/systemd/system/openclaw.service
-
写入服务配置 根据你的实际安装路径和启动命令进行修改,以下是一个通用模板:
[Unit] Description=AI OpenClaw Service After=network.target # 如果你依赖数据库(如Redis、MySQL),可以加上: # After=network.target redis-server.service mysql.service [Service] Type=simple # 重要:替换为你的实际工作目录和启动命令 WorkingDirectory=/path/to/your/openclaw # 示例1:如果使用Python直接启动 ExecStart=/usr/bin/python3 /path/to/your/openclaw/main.py # 示例2:如果使用Docker Compose # ExecStart=/usr/local/bin/docker-compose -f /path/to/your/docker-compose.yml up # 示例3:如果是一个可执行文件 # ExecStart=/path/to/your/openclaw/openclaw-app # 重启策略:进程意外退出时自动重启 Restart=on-failure RestartSec=10s # 运行用户,根据你的情况修改 User=your_username Group=your_usergroup # 环境变量(如果需要) Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin" # Environment="API_KEY=your_key" [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 start/stop/restart openclaw.servicesudo systemctl status openclaw.servicesudo journalctl -u openclaw.service -n 50(查看最近50行日志)
使用 Crontab(适用于定时执行或简单的启动)
如果你的需求是每天定点运行,或者没有 systemd 的环境,可以使用 cron。
设置开机启动(@reboot):
- 编辑当前用户的crontab:
crontab -e
- 在文件末尾添加一行,同样,请替换为你的实际命令:
# 在系统启动后等待2分钟,然后切换到目录并执行命令 @reboot sleep 120 && cd /path/to/your/openclaw && /usr/bin/python3 main.py > /tmp/openclaw.log 2>&1
sleep 120:等待2分钟,确保网络等依赖服务就绪。> /tmp/openclaw.log 2>&1:将标准输出和错误重定向到日志文件。
设置定时运行(每天凌晨3点重启):
使用 Docker / Docker Compose(如果以此方式安装)
如果你的OpenClaw是通过Docker容器运行的。
-
在
docker run命令中使用--restart策略:docker run -d --name openclaw --restart=unless-stopped [其他参数] your-openclaw-image:tag
--restart=unless-stopped:除非手动停止,否则容器退出时(包括系统重启)都会自动重启。
-
在
docker-compose.yml文件中配置:version: '3' services: openclaw: image: your-openclaw-image:tag container_name: openclaw restart: unless-stopped # 或使用 always # ... 其他配置你还可以将
docker-compose up本身设置为系统服务(参考方案一),实现双重保障。
总结与选择建议
| 场景 | 推荐方案 | 优点 |
|---|---|---|
| Linux服务器,需7x24小时运行,要监控和自动恢复 | Systemd服务 | 功能最全,集成度高,易于管理,日志规范。 |
| 个人电脑或简单环境,只需要开机跑起来 | Crontab的 @reboot |
简单快捷,无需root权限(用户级)。 |
| 通过Docker安装 | Docker重启策略 + (可选) Systemd托管 | 利用容器自身机制,干净隔离,结合Systemd管理更佳。 |
| 需要复杂的定时任务(如每日数据备份后重启) | Crontab定时任务 | cron 擅长复杂的定时调度。 |
关键检查点
- 路径正确性:所有
WorkingDirectory、ExecStart中的路径必须绝对正确。 - 依赖服务就绪:使用
After=确保网络、数据库等先启动。 - 用户权限:确保
User有权限访问相关目录和文件。 - 环境变量:如果程序需要,在
Service部分正确设置Environment。 - 测试:务必先
sudo systemctl start openclaw.service && sudo systemctl status openclaw.service测试,观察日志确保无报错。
请提供你的OpenClaw具体安装方式(如:直接Python运行、Docker、可执行文件)和操作系统,我可以给出更精确的配置示例。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。