Hermes_Agent无人值守自动化实战指南
要让Hermes Agent真正实现无人值守运行,关键在于自动启动与容错机制的完整闭环。如果目前仍需手动启动、登录或频繁人工介入,说明这套自动化流水线尚未完全打通。下面直接给出五种独立配置路径,覆盖Linux服务器、云桌面到容器环境,按实际需求选用即可。
如果你已部署好Hermes Agent,却发现每次都得手动启动、登录或隔段时间就掉线,那离无人值守还差一步。接下来这几种配置方法,每个都能独立生效,挑你最匹配的环境落地。
一、启用系统级服务自启(Linux/macOS)
这个方法最适合拥有root权限的生产环境:将Hermes Agent注册为系统服务,开机自动运行,进程崩溃后也能自动重启,全程无需盯着终端。
1、先创建一个systemd服务文件:sudo nano /etc/systemd/system/hermes.service
2、把下面这段配置填进去(注意根据实际Python路径和用户替换ExecStart行):[Unit] Description=Hermes Agent Service After=network.target [Service] Type=simple User=your_username WorkingDirectory=/home/your_username ExecStart=/usr/bin/python3 -m hermes Restart=always RestartSec=10 Environment=PATH=/usr/bin:/usr/local/bin Environment=PYTHONUNBUFFERED=1 [Install] WantedBy=multi-user.target
3、重载配置并启用服务:sudo systemctl daemon-reload && sudo systemctl enable hermes && sudo systemctl start hermes
4、检查一下服务状态:sudo systemctl status hermes,如果看到active (running)且无报错信息,说明配置生效。
二、配置无影云电脑全天候运行策略
如果你用阿里云无影云电脑跑Hermes Agent,有个常见坑必须避开:断连休眠策略。默认情况下,云电脑断开连接或长时间无操作会自动休眠,导致Agent进程中断。解决办法很简单——关闭那个休眠开关。
1、登录无影控制台,找到目标云电脑实例的管理页面。
2、点击云电脑卡片右下角的“管理”按钮。
3、左侧导航栏选择“策略”页签。
4、找到“断连定时关机/休眠”开关——直接把它关闭。
5、回到桌面,确认Hermes Agent进程仍在运行:终端里执行 ps aux | grep hermes,看到活跃进程就说明不会被休眠干掉了。
三、使用tmux会话守护进程(通用终端方案)
这个方案非常适合没有root权限或临时部署场景。利用tmux创建持久会话,Agent跑在里面,断开SSH也不会终止。即便进程意外退出,重新attach后仍可看到输出日志。
1、新建一个命名会话:tmux new-session -d -s hermes-agent
2、在这个会话里启动Hermes:tmux send-keys -t hermes-agent 'hermes' Enter
3、想查看日志?直接attach进去:tmux attach -t hermes-agent
4、想离开但不终止进程?按 Ctrl-b d 组合键分离会话即可。
注意:tmux本身不会自动重启崩溃的进程,但它能让你在同一个终端窗口里保持后台运行,搭配cron定期检查效果更佳。
四、Docker容器启用自动重启策略
容器化部署天然适合微服务场景,但有一个关键点:必须给容器加上自动重启策略。否则容器内部进程异常退出后,整个容器会直接停掉。
1、启动容器时务必带上 --restart=always 参数。
2、完整命令参考:docker run -d --restart=always --name hermes-agent -p 8000:8000 -v /path/to/config:/app/config hermes-image
3、确认容器已运行:docker ps | grep hermes-agent,观察STATUS列是否为“Up”且运行时间持续增长。
4、还可以检查重启次数来确认自动重启是否真实生效:docker inspect hermes-agent | jq '.[0].RestartCount',如果返回非零值,说明之前确实触发过重启。
五、IM网关配置重连与健康检查机制
最后这个环节聚焦消息接入层的稳定性。Hermes Agent通过IM网关收发消息,网络波动、平台限流甚至网关进程自身崩溃都可能发生。需要让网关断线后自动重连,并暴露健康检查接口以便外部监控。
1、找到网关配置文件 config/gateway.yml,在对应平台段落下添加重连间隔:reconnect_interval: 30(单位秒)。
2、开启健康检查开关:health_check: true,这样/health 路由就能被外部探测到。
3、配置心跳检测间隔,保持长连接活性:heartbeat_interval: 60(秒)。
4、验证一下:curl -s http://localhost:8000/health | jq '.status',正常应返回 "healthy"。
到这一步,Hermes Agent基本就能全天候自动运转了——系统级自启、云电脑不休眠、tmux常驻、Docker自动重启、网关稳如狗。任选一种或组合使用,都能大幅减少手动维护精力。
