You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu系统GitLab访问502错误且Unicorn进程反复重启求助

解决GitLab Unicorn启动失败(PID反复变化、502错误)的方案

兄弟,我之前踩过这个一模一样的坑——Ubuntu装完GitLab后访问出现502,查gitlab-ctl status发现unicorn PID一直在跳,日志还报ArgumentError: Already running on PID:xxx (or pid=/opt/gitlab/var/unicorn/unicorn.pid is stale)。折腾了好一会儿终于搞定,给你按优先级整理几个亲测有效的步骤:

  • 第一步:彻底清理残留进程与过期PID文件
    这个是最常见的原因,残留进程和过期PID文件会导致unicorn反复重启:

    1. 先完全停止GitLab所有服务:
      gitlab-ctl stop
      
    2. 检查并杀掉所有残留的unicorn相关进程:
      ps aux | grep unicorn
      
      看到进程后,用sudo kill -9 [PID]逐个杀掉,或者用批量命令:
      sudo pkill -f unicorn
      
    3. 删除过期的PID文件:
      sudo rm /opt/gitlab/var/unicorn/unicorn.pid
      
  • 第二步:检查端口占用情况
    如果你修改过unicorn['port'],要确认这个端口没被其他进程占用:

    netstat -tulpn | grep :[你的unicorn端口]
    

    如果查到有其他进程占用,要么杀掉那个进程,要么在/etc/gitlab/gitlab.rb里把unicorn端口改成一个空闲的数值,然后执行gitlab-ctl reconfigure生效。

  • 第三步:排查资源不足问题
    GitLab(尤其是unicorn)对内存要求不低,如果你的Ubuntu服务器内存太小,会导致unicorn启动后立刻崩溃重启:

    1. 先查看内存使用情况:
      free -h
      
    2. 如果可用内存不足1GB,建议先升级服务器内存;暂时没法升级的话,可以减少unicorn的worker进程数来降低资源消耗:
      编辑/etc/gitlab/gitlab.rb,找到unicorn['worker_processes'],把默认的4改成2或者1:
      unicorn['worker_processes'] = 2
      
      然后重新配置并重启:
      gitlab-ctl reconfigure
      gitlab-ctl restart
      
  • 第四步:检查目录权限
    有时候unicorn的运行目录权限不对,也会导致启动失败:
    检查/opt/gitlab/var/unicorn/的权限是否属于git用户:

    sudo ls -ld /opt/gitlab/var/unicorn/
    

    如果不是,执行以下命令修复:

    sudo chown -R git:git /opt/gitlab/var/unicorn/
    
  • 最后验证效果
    执行gitlab-ctl start启动所有服务,然后用gitlab-ctl status查看状态,如果unicorn的PID不再变化,并且显示run状态,再访问你的GitLab地址应该就能正常打开了。如果还是有问题,可以实时查看unicorn日志找更详细的错误:

    gitlab-ctl tail unicorn
    

内容的提问来源于stack exchange,提问作者Rocky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:07:35