WSL Ubuntu20下GitLab Runner查状态提示未安装且start命令失效问题
问题核心原因
你遇到的两个问题本质都是WSL2默认未启用systemd,导致GitLab Runner的系统级服务无法正常安装注册,只能运行在用户模式下。
解决步骤
1. 启用WSL的systemd支持(推荐方案)
WSL版本需要大于0.67.6才支持systemd,确认版本符合要求后执行以下操作:
- 编辑WSL配置文件
sudo nano /etc/wsl.conf
- 写入以下配置:
[boot] systemd=true
- 保存退出后,在Windows终端执行以下命令重启WSL:
wsl --shutdown
重启后重新进入Ubuntu 20系统即可生效。
2. 安装并启动GitLab Runner系统服务
- 执行安装命令注册系统服务,替换命令中的运行用户和工作目录为你实际使用的配置:
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
- 启动服务
sudo gitlab-runner start
- 验证状态
sudo gitlab-runner status
此时应该返回服务正常运行的提示,后续GitLab有任务触发时Runner会自动处理,无需手动执行gitlab-runner run命令。
注意事项
如果之前你是用普通用户身份注册的Runner,配置文件存放在~/.gitlab-runner/config.toml,系统服务默认读取的是/etc/gitlab-runner/config.toml,需要手动将用户级配置复制到系统级目录并修改权限:
sudo cp ~/.gitlab-runner/config.toml /etc/gitlab-runner/ sudo chown root:root /etc/gitlab-runner/config.toml sudo chmod 600 /etc/gitlab-runner/config.toml
复制完成后重启Runner服务即可生效。
临时替代方案(无需启用systemd)
如果不想启用systemd,可以用nohup命令将Runner进程放在后台运行:
nohup gitlab-runner run > /var/log/gitlab-runner.log 2>&1 &
该方案缺点是WSL重启后需要重新执行上述命令。
内容的提问来源于stack exchange,提问作者NAM
相关产品推荐
相关产品推荐

