Hermes Agent 升级翻车实录

周末手贱,看到 1Panel 里 Hermes Agent 有了新版本(2026.5.29),想着升一下体验点新功能。结果好家伙,直接给我整无限重启了!记录下踩坑过程。
离奇的报错:找不到 sleep?
升级完容器就开始抽风,启动、崩溃、重启,无限循环。
我扒开日志一看,直接傻眼:

1Panel-hermes-agent-QJzu  |   Hermes Web UI → http://0.0.0.0:9119
1Panel-hermes-agent-QJzu  | → gateway is now running under s6 supervision (auto-restart on crash,
1Panel-hermes-agent-QJzu  |   dashboard supervised alongside if HERMES_DASHBOARD is set).
1Panel-hermes-agent-QJzu  |   This is the recommended setup for the s6 container image — the
1Panel-hermes-agent-QJzu  |   gateway will keep running even if it crashes.
1Panel-hermes-agent-QJzu  |   Use `--no-supervise` (or HERMES_GATEWAY_NO_SUPERVISE=1) to opt out
1Panel-hermes-agent-QJzu  |   and get the pre-s6 foreground behavior instead.
1Panel-hermes-agent-QJzu  | Traceback (most recent call last):
1Panel-hermes-agent-QJzu  |   File "/opt/hermes/.venv/bin/hermes", line 10, in <module>
1Panel-hermes-agent-QJzu  |     sys.exit(main())
1Panel-hermes-agent-QJzu  |              ~~~~^^
1Panel-hermes-agent-QJzu  |   File "/opt/hermes/hermes_cli/main.py", line 14303, in main
1Panel-hermes-agent-QJzu  |     args.func(args)
1Panel-hermes-agent-QJzu  |     ~~~~~~~~~^^^^^^
1Panel-hermes-agent-QJzu  |   File "/opt/hermes/hermes_cli/main.py", line 1853, in cmd_gateway
1Panel-hermes-agent-QJzu  |     gateway_command(args)
1Panel-hermes-agent-QJzu  |     ~~~~~~~~~~~~~~~^^^^^^
1Panel-hermes-agent-QJzu  |   File "/opt/hermes/hermes_cli/gateway.py", line 5135, in gateway_command
1Panel-hermes-agent-QJzu  |     return _gateway_command_inner(args)
1Panel-hermes-agent-QJzu  |   File "/opt/hermes/hermes_cli/gateway.py", line 5228, in _gateway_command_inner
1Panel-hermes-agent-QJzu  |     if _maybe_redirect_run_to_s6_supervision(args):
1Panel-hermes-agent-QJzu  |        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
1Panel-hermes-agent-QJzu  |   File "/opt/hermes/hermes_cli/gateway.py", line 5220, in _maybe_redirect_run_to_s6_supervision
1Panel-hermes-agent-QJzu  |     os.execvp("sleep", ["sleep", "infinity"])
1Panel-hermes-agent-QJzu  |     ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1Panel-hermes-agent-QJzu  |   File "<frozen os>", line 612, in execvp
1Panel-hermes-agent-QJzu  |   File "<frozen os>", line 654, in _execvpe
1Panel-hermes-agent-QJzu  |   File "<frozen os>", line 645, in _execvpe
1Panel-hermes-agent-QJzu  | FileNotFoundError: [Errno 2] No such file or directory

报错说找不到 sleep 命令?网上搜这个报错,什么也搜不出来。
尝试复现问题
百思不得其解,我用手里的 x86 虚拟机也跑了这个镜像,运行正常。那是我 arm 的问题吗?
有可能吧,这一台 arm 机器很多项目都不支持。试试其他办法了。有一瞬间想要卸载重装了,看着已经养了一个多月的 hermes 文件,转移也无从下手。
突然想到,升级的时候有备份(我之前都是主动去掉备份选项的),还能先回退到上个备份版本。我之前还觉得备份无用还占空间,现在不就用上了,认识到备份的重要性了。
我的 AI 老师
作为一个入门的小白,遇到问题首先想到的是用 AI 解决。
这次不止问了一个 AI 模型网页版,qwen3.7、mimo、deepseek 都用了,让他们分析了日志,指出是缺依赖了,镜像没有把coreutils 打包进去。三个回答基本一样,就选了千问继续对话,因为多模态。
另一边 hermes 也回退成功了,想试着让他自己来解决这个问题,他给了另一个答案,手动装依赖。
既然它重启得快,就给我写个 shell 脚本,想在容器重启的间隙疯狂用 docker exec 冲进去安装依赖。

for i in $(seq 1 10); do
  docker exec 1Panel-hermes-agent-QJzu bash -c "apt-get install -y coreutils" && break
  sleep 1
done

结果跟千问一聊,被无情劝退。容器是无状态的,你就算手速再快装上了,下次容器一更新,你装的东西全没了,白干!
选择千问给的结局方案,配置环境变量,绕过 sleep
一行代码,瞬间复活
根本不需要去装什么依赖,直接在 1Panel 的 docker-compose 配置里,环境变量(environment)下面加一行:

HERMES_GATEWAY_NO_SUPERVISE: "1"

保存,重建容器。
也不影响任何功能

craved 管理员

1篇 本周更新
8篇 本月更新
1个 用户数量

站点性能

运行正常
实时心跳0 ms
页面加载
0
SQL 查询
0
服务端响应
0 ms
峰值内存
0 MB
00 : 00 : 00
2026624星期三
目录