作者:Gakki
前言
systemctl start jenkins 重启 Jenkins 失败 | systemctl restart jenkins | systemctl status jenkins | Jenkins 升级,启动失败 | Linux 环境 Jenkins 升级,启动失败问题排查
1.前期准备
-
首先,找到旧版本 Jenkins.war 包的存放的位置,可以在 Jenkins 界面上找到。在 System Information (系统属性)里面可以看到 Jenkins.war 包 存放的地址。
备注之前的 Jenkins.war 包(以防升级失败还可以继续用旧的 war 包)
-
Jenkins 对应 Java 版本。不同的 Java 对应不同的Jenkins 版本号,如果发现服务器上的 Java 与要升级的 Jenkins 版本号不匹配,需要重新下载新的 Java 版本到服务器上。Jenkins 对应 Java 版本网址:Java Support Policy
我这次要升级为最新的 Jenkins — V 2.479.2。查了下服务器上的 Java 版本是 1.8 ,不匹配最新的 Jenkins,需要升级。
2. 升级 Java 版本
注:如果你的 Java 版本匹配 Jenkins,那就跳过这步。
-
去 java 官网下载需要的版本。Java Downloads | Oracle 。我需要的版本是 Java 17。所以下载的是 Java 17 tar 包(根据自己的需求来下载对应版本)
-
下载完成后,复制到 Linux 服务器上。解压到对应的文件夹。解压命令:
tar -xvf jdk-17.0.12_linux-x64_bin.tar.gz
设置环境变量,修改 vi /etc/profile ,在 profile 文件中添加如下内容并保存。其中, JAVA_HOME 请根据自己的实际安装路径及 JDK 版本配置。
export JAVA_HOME=/usr/lib/jvm/jdk-17.0.12
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- 让修改生效,执行
source /etc/profile
命令。然后测试 Java 是否升级成功。执行java -version
命令
3. 启动新版本 Jenkins 失败,并排查问题
将最新下载的 Jenkins.war 包放到对应的文件夹,先让 Jenkins 停服,输入命令:
systemctl stop jenkins
。然后重启systemctl start jenkins
如果启动成功,下面就不用看了。
-
启动失败?先回退 Jenkins 版本,用之前备份的 Jenkins.war 看看能不能启动成功。如果能启动成功,那看一下 jenkins 启动的 jdk 配置是不是我们刚才更新的版本。输入命令:
systemctl status jenkins
。
-
或者执行命令 :
journalctl -xe
,查看报错主要原因。
发现跟我们最新下载的 Java 版本不一样。那就是我们没有改到 Jenkins 启动时用到的 Java 版本信息。
-
执行命令:
vim /etc/init.d/jenkins
。找到这里,将 Java 启动位置改为我们需要的。然后保存,再重启systemctl start jenkins
。启动成功,那有可能我们的 Java 版本还是不对。输入命令:systemctl status jenkins
。查看 Java 版本是不是我们刚才改的。
注:我们用的是旧版本 Jenkins.war 包启动的,按道理应该是启动失败,但如果启动成功,说明还是有问题。
-
执行命令:
vim /usr/lib/systemd/system/jenkins.service
,找到下面这个位置,修改为最新的 Java 版本。
然后保存,在执行命令:
systemctl start jenkins
。执行失败,那说明我们以及将 Java 版本改好了。然后用新的 Jenkins.war 包,执行命令:systemctl start jenkins
。到此,Jenkins 对应的 Java 版本信息对应上了。其实也不难发现,系统使用的是 Java 版本跟 Jenkins 启动时运行的 Java 版本是不一样。如果你想改成一样的,再第二步骤【 2. 升级 Java 版本】修改 vi /etc/profile 中的配置信息就行了。