From 1fdee948120de6a1ae5da651a104cc2e89d5d0b2 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 3 Nov 2026 16:36:48 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E9=83=A8=E7=BD=B2):=20=E8=AE=B0=E4=B8=8B?= =?UTF-8?q?=20runner=20=E4=BC=9A=E3=80=8C=E5=81=87=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E3=80=8D=E4=BB=A5=E5=8F=8A=E7=9C=8B=E9=97=A8=E7=8B=97=E5=85=9C?= =?UTF-8?q?=E5=BA=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit gitea-runner 5.2.4 拉任务超时一次后就不再拉,Gitea 显示没有在线的运行器。开发机上 fetch_timeout 放到 30s,另加用户级 gitea-runner-watchdog.timer 每 5 分钟检查、卡住就重启。 Co-Authored-By: Claude Opus 5.5 --- docs/deploy.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/deploy.md b/docs/deploy.md index a993daa..d381497 100644 --- a/docs/deploy.md +++ b/docs/deploy.md @@ -99,6 +99,15 @@ Run workflow),开发机不在、又急着上线时用。它不再 push 就 | 配置 | `~/.local/share/gitea-runner/config.yaml`(标签 `oj2-deploy:host`、`iot-deploy:host`,capacity 1) | | 注册 | 同目录的 `.runner`;注册在 `xuyue` 用户下,和 IOT_SIM(物联网仿真平台)共用。capacity 1,两边的部署排队,不会同时挤服务器 | | 日志 | `journalctl --user -u gitea-runner -f`;每次部署的日志在 Gitea 的 Actions 页面 | +| 看门狗 | `~/.config/systemd/user/gitea-runner-watchdog.timer`,每 5 分钟跑同目录配置旁的 `watchdog.sh`(见下) | + +**runner 会「假在线」。** gitea-runner 5.2.4 拉任务超时一次(默认 5 秒,网络一抖就超)之后就再也 +不拉了:服务还是 active,push 之后 Gitea 却说「没有在线的运行器来领取这个任务」(2026-11-03 一天 +撞了两次)。两层兜底:`config.yaml` 里 `fetch_timeout: 30s` 少撞几次;看门狗 +`~/.local/share/gitea-runner/watchdog.sh` 去服务器的 Gitea 库里看 `action_runner` 的 +`last_online` / `last_active`,超过 3 分钟没见到这个 runner、而且它手上没有在跑的任务(不打断部署), +就 `systemctl --user restart gitea-runner`;连不上服务器时什么都不做。所以撞上了最多等 5 分钟, +等不及就自己重启一下。看门狗做了什么:`journalctl --user -u gitea-runner-watchdog`。 **部署不用开发机自己的 bun。** pacman 装的 bun 是 Arch 自己编的,动态链接系统 ICU,单二进制 把它打进去之后到容器里报 `libicui18n.so.78: cannot open shared object file`(2026-11-03 第一次跑