GitHub自托管Runner持续等待任务拾取问题求助
检查Runner在线状态
进入仓库的Settings → Actions → Runners页面,确认自托管Runner状态为Idle。若显示Offline,登录Runner所在机器:- Linux/macOS:执行
./run.sh status查看服务状态,停止的话用./run.sh start重启。 - Windows:在系统服务列表中找到GitHub Actions Runner服务,检查是否运行,未运行则手动启动。
- Linux/macOS:执行
验证网络连通性
确保Runner机器能访问api.github.com和github.com,可通过ping api.github.com或curl https://api.github.com测试。同时检查防火墙、代理设置,确认未拦截通信;若用代理,核对Runner安装目录.env文件中的HTTP_PROXY/HTTPS_PROXY参数是否正确。核对标签匹配规则
查看Workflow文件的runs-on字段,确认指定标签与自托管Runner的标签完全一致(大小写敏感)。若用runs-on: self-hosted,需确认Runner未被设为Specific repository限制,且当前仓库有权使用该Runner。查看Runner日志定位问题
进入Runner安装目录的_diag文件夹,查看最新的Runner_*.log日志文件,搜索error或failed关键词排查具体错误。Linux/macOS也可执行./run.sh logs查看实时日志。重新注册Runner
若上述步骤无效,尝试删除并重新注册:- 在仓库Settings的Runners页面,移除目标Runner。
- 在Runner机器上进入安装目录,执行
./config.sh remove完成移除。 - 回到仓库Runners页面,点击New self-hosted runner,按指引重新配置注册。
检查仓库Workflow权限
进入仓库Settings → Actions → General,确认Workflow permissions设为Read and write permissions。同时检查分支保护规则,确认未限制Workflow的触发运行。
内容的提问来源于stack exchange,提问作者damia

