Ubuntu20.04下Jenkins启动会话立即关闭失败无日志如何解决
Ubuntu 20.04 Jenkins 启动失败(退出状态码7、日志为空)排查与解决
核心报错信息
Oct 22 16:39:11 server systemd[1]: Starting LSB: Start Jenkins at boot time... Oct 22 16:39:11 server jenkins[8758]: Correct java version found Oct 22 16:39:11 server jenkins[8758]: * Starting Jenkins Automation Server jenkins Oct 22 16:39:11 server su[8795]: (to jenkins) root on none Oct 22 16:39:11 server su[8795]: pam_unix(su-l:session): session opened for user jenkins by (uid=0) Oct 22 16:39:11 server su[8795]: pam_unix(su-l:session): session closed for user jenkins Oct 22 16:39:12 server jenkins[8758]: ...fail! Oct 22 16:39:12 server systemd[1]: jenkins.service: Control process exited, code=exited, status=7/NOTRUNNING Oct 22 16:39:12 server systemd[1]: jenkins.service: Failed with result 'exit-code'. Oct 22 16:39:12 server systemd[1]: Failed to start LSB: Start Jenkins at boot time.
排查方向
- 验证Jenkins关联目录权限:检查
/var/lib/jenkins(数据目录)、/var/log/jenkins(日志目录)、/var/cache/jenkins(缓存目录)的所属用户是否为jenkins,是否有读写执行权限,执行命令ls -ld /var/lib/jenkins /var/log/jenkins /var/cache/jenkins即可查看。 - 手动启动输出实时报错:切换到jenkins用户直接运行Jenkins程序,绕过systemd封装直接看报错信息,执行命令
su - jenkins -s /bin/bash -c "/usr/bin/java -jar /usr/share/jenkins/jenkins.war",注意替换其中的Java路径和jenkins.war路径为你环境的实际配置。 - 检查端口与内存配置:首先确认Jenkins默认端口8080是否被占用,执行
ss -tulpn | grep 8080验证;再检查/etc/default/jenkins中JAVA_ARGS参数的堆内存设置是否超出服务器可用内存。 - 验证JDK配置对jenkins用户生效:避免出现只有root用户能读到JDK配置的情况,执行
su - jenkins -s /bin/bash -c "echo \$JAVA_HOME && java -version"确认jenkins用户能正常识别JDK 11。
对应解决方法
- 权限异常修复:执行
chown -R jenkins:jenkins /var/lib/jenkins /var/log/jenkins /var/cache/jenkins修复目录所属权,之后执行systemctl restart jenkins重启服务。 - 端口被占用修复:编辑
/etc/default/jenkins,修改HTTP_PORT参数为未被占用的端口(如8081),保存后重启服务。 - JDK配置不生效修复:在
/etc/default/jenkins中显式指定JDK路径,添加一行JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64,替换为你实际的JDK 11安装路径,保存后重启服务。 - 内存不足修复:编辑
/etc/default/jenkins,调整JAVA_ARGS中的堆内存上限,例如修改为JAVA_ARGS="-Xmx512m",适配服务器实际内存大小后重启服务。
内容的提问来源于stack exchange,提问作者Carter
相关产品推荐
相关产品推荐

