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

GitLab出现502错误未知Java进程占满CPU 如何查找进程来源并终止

未知Java进程占满CPU导致GitLab 502的解决步骤

1. 定位进程归属与自启动来源

  • 先获取异常Java进程的PID:执行top 命令找到CPU占用100%的Java进程ID,记为$PID
  • 查看父进程信息:执行ps -o ppid= $PID,如果父进程ID为1,说明是由系统守护进程托管
  • 直接查询进程对应的服务:执行systemctl status $PID,可直接输出该进程关联的systemd服务名称

2. 禁用自启动机制

按优先级排查以下常见的进程托管方式,找到后禁用对应规则:

  • systemd服务:如果上一步查到了服务名,执行systemctl stop <服务名> && systemctl disable <服务名> 停止服务并关闭自启
  • supervisor等第三方守护进程:检查/etc/supervisord.d/ 目录下的所有配置文件,找到关联tomcat的配置项删除后,执行supervisorctl update 生效
  • 定时任务:分别检查/etc/crontab、/var/spool/cron/ 目录下所有用户的定时任务,删除所有自动拉起tomcat的规则
  • 开机启动脚本:检查/etc/rc.local、/etc/rc.d/rc.local 文件,删除其中启动tomcat的相关命令

3. 彻底清理残留

从进程启动命令可知,该应用是部署在/data/apache-tomcat/的tomcat程序,Java环境安装在/usr/java/latest/:

  • 先强制终止当前运行的进程:kill -9 $PID
    注意:执行删除操作前请确认目录无需要保留的业务数据
  • 删除tomcat程序目录:rm -rf /data/apache-tomcat/
  • 删除未知来源的Java环境:rm -rf /usr/java/
  • 完成操作后可重启服务器验证进程是否会再次自动拉起

该进程大概率是之前gitlab-runner执行CI/CD任务时启动的服务,未配置任务结束自动回收,导致进程脱离runner管控驻留在系统中,后续可以给CI任务增加执行完自动清理衍生进程的规则避免同类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:24:02