GitLab Runner调度异常求助:指定标签Runner执行用户不一致
问题原因及解决办法
核心原因
你遇到的问题本质是同一台机器上存在两个属于不同用户的同名sh4fw Runner实例在同时运行。Shell executor的任务执行用户,就是启动该Runner进程的用户,所以会出现任务有时用hefeiqh、有时用fw执行的情况。
具体排查步骤
检查运行中的Runner进程
执行以下命令查看所有gitlab-runner进程的所属用户:ps aux | grep gitlab-runner如果能看到两个分别属于
hefeiqh和fw的gitlab-runner进程,就说明是多用户启动了同名Runner。检查Runner配置文件
GitLab Runner的配置分系统级和用户级:- 系统级配置:
/etc/gitlab-runner/config.toml - 用户级配置:
~/.gitlab-runner/config.toml(每个用户目录下都可能有)
分别查看hefeiqh和fw用户目录下的配置文件,以及系统级配置,看是否存在重复的sh4fwRunner条目。
- 系统级配置:
解决方法
停止所有Runner进程
先停止系统服务的Runner,再杀掉用户手动启动的进程:sudo gitlab-runner stop sudo pkill -f gitlab-runner清理重复配置
删除所有多余的sh4fwRunner配置,只保留一个由你指定用户(比如fw)注册的条目。如果是系统级Runner,确保配置文件中只有一个sh4fw的[[runners]]块。重新启动并固定运行用户
- 如果用系统服务运行,修改systemd配置文件(通常在
/etc/systemd/system/gitlab-runner.service),将User字段设置为你想要的固定用户(比如fw),然后重新加载服务:sudo systemctl daemon-reload sudo systemctl restart gitlab-runner - 如果用用户级Runner,切换到指定用户(比如
fw),重新启动Runner:su - fw gitlab-runner start
- 如果用系统服务运行,修改systemd配置文件(通常在
清理GitLab端重复Runner
登录GitLab项目的设置 -> CI/CD -> Runners页面,删除重复的sh4fwRunner条目,只保留正在运行的那个。
内容的提问来源于stack exchange,提问作者hefeiqh
相关产品推荐
相关产品推荐

