升级Jenkins至2.440.3后无法通过systemctl启动问题求助
问题:Jenkins升级至2.440.3后无法通过systemctl启动(Ubuntu + JDK11)
在Ubuntu机器上安装JDK11后,将Jenkins升级至2.440.3,出现无法通过systemctl启动的问题,相关错误日志如下:
Jun 26 13:09:40 jenkins-sandpit-instance-group-2-tpmd systemd[1]: jenkins.service: Service RestartSec=100ms expired, schedulin Jun 26 13:09:40 jenkins-sandpit-instance-group-2-tpmd systemd[1]: jenkins.service: Scheduled restart job, restart counter is a Jun 26 13:09:40 jenkins-sandpit-instance-group-2-tpmd systemd[1]: Stopped My Company Jenkins Controller. Jun 26 13:09:40 jenkins-sandpit-instance-group-2-tpmd systemd[1]: jenkins.service: Start request repeated too quickly. Jun 26 13:09:40 jenkins-sandpit-instance-group-2-tpmd systemd[1]: jenkins.service: Failed with result 'exit-code'
Systemctl单元配置如下:
# value such as "5min 20s". Pass "infinity" to disable the timeout logic. #TimeoutStartSec=90 # Unix account that runs the Jenkins daemon # Be careful when you change this, as you need to update the permissions of # $JENKINS_HOME, $JENKINS_LOG, and (if you have already run Jenkins) # $JENKINS_WEBROOT. User=jenkins Group=jenkins # Directory where Jenkins stores its configuration and workspaces Environment="JENKINS_HOME=/var/lib/jenkins" WorkingDirectory=/var/lib/jenkins # Location of the Jenkins WAR Environment="JENKINS_WAR=/usr/share/java/jenkins.war" # Location of the exploded WAR #Environment="JENKINS_WEBROOT=%C/jenkins/war" # Location of the Jenkins log. By default, systemd-journald(8) is used. Environment="JENKINS_LOG=%L/jenkins/jenkins.log" # The Java home directory. When left empty, JENKINS_JAVA_CMD and PATH are consulted. Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" # The Java executable. When left empty, JAVA_HOME and PATH are consulted. #Environment="JENKINS_JAVA_CMD=/etc/alternatives/java"
排查与解决步骤
查看Jenkins详细启动日志
systemd日志仅提示重启过快,需获取Jenkins自身的启动细节:journalctl -u jenkins.service -f --no-pager或直接查看Jenkins日志文件:
cat /var/log/jenkins/jenkins.log日志会明确显示失败原因,比如依赖缺失、配置错误、权限不足等。
验证JDK配置与权限
Jenkins 2.440.3兼容JDK11,但需确保jenkins用户能正常访问JDK:su - jenkins -c "$JAVA_HOME/bin/java -version"若输出异常,检查JDK目录权限:
chmod -R 755 /usr/lib/jvm/java-11-openjdk-amd64修复文件与目录权限
升级过程可能导致权限变更,确保jenkins用户拥有以下路径的完整权限:chown -R jenkins:jenkins /var/lib/jenkins chown jenkins:jenkins /usr/share/java/jenkins.war chown -R jenkins:jenkins /var/log/jenkins调整systemd启动超时
默认启动超时可能不足,取消TimeoutStartSec注释并延长时间:
修改systemd单元配置,设置:TimeoutStartSec=300然后重新加载配置并重启:
systemctl daemon-reload systemctl restart jenkins排查插件兼容性问题
旧插件可能与新版本Jenkins冲突,临时禁用所有插件测试启动:- 停止服务:
systemctl stop jenkins - 在systemd配置中添加启动参数:
Environment="JENKINS_OPTS=--disable-all-plugins" - 重新加载配置并启动:
systemctl daemon-reload && systemctl start jenkins
若启动成功,说明是插件问题,需逐一更新或卸载冲突插件。
- 停止服务:
重新下载Jenkins WAR文件
若WAR文件损坏,重新下载官方稳定版替换:wget -O /usr/share/java/jenkins.war https://get.jenkins.io/war-stable/2.440.3/jenkins.war chown jenkins:jenkins /usr/share/java/jenkins.war systemctl restart jenkins
内容的提问来源于stack exchange,提问作者Deepak
相关产品推荐
相关产品推荐

