Jenkins的启动脚本:/etc/rc.d/init.d/jenkins (也可理解为配置文件)
java的属性配置:candidates
默认信息如下:
# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
/usr/bin/java
"
其脚本使用的就是java jdk中bin目录下的java程序进行启动的,故/usr/bin/java中的java不是目录,而是java应用程序(如下图),所以在我们需要修改自定义java环境的时候,则只需要把它改成自己的java jdk中的java应用程序即可,即重新指定java应用程序的路径

等同于Window中自定义安装jdk中的java.exe

- 方案一:修改配置文件
打开/etc/rc.d/init.d/jenkins文件,直接把脚本文件中的java应用程序指向自定义安装的java应用程序,即把/usr/bin/java替换成/usr/local/java/jdk1.8.0_191/bin/java,然后重新加载配置文件
cmd打开配置文件指令:vi /etc/rc.d/init.d/jenkins
cmd重新加载配置文件指令:systemctl daemon-reload
# Search usable Java as /usr/bin/java might not point to minimal version required by Jenkins.
# see http://www.nabble.com/guinea-pigs-wanted-----Hudson-RPM-for-RedHat-Linux-td25673707.html
candidates="
/etc/alternatives/java
/usr/lib/jvm/java-1.8.0/bin/java
/usr/lib/jvm/jre-1.8.0/bin/java
/usr/lib/jvm/java-1.7.0/bin/java
/usr/lib/jvm/jre-1.7.0/bin/java
/usr/lib/jvm/java-11.0/bin/java
/usr/lib/jvm/jre-11.0/bin/java
/usr/lib/jvm/java-11-openjdk-amd64
#/usr/bin/java
/usr/local/java/jdk1.8.0_191/bin/java
"
修改配置之后的systemctl status jenkins信息如下
[root@localhost ~]# systemctl start jenkins
[root@localhost ~]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: active (running) since 四 2020-10-29 12:50:15 CST; 23s ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/jenkins.service
└─5149 /usr/local/java/jdk1.8.0_191/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webr...
10月 29 12:50:15 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
10月 29 12:50:15 localhost.localdomain runuser[5123]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
10月 29 12:50:15 localhost.localdomain runuser[5123]: pam_unix(runuser:session): session closed for user jenkins
10月 29 12:50:15 localhost.localdomain jenkins[5115]: Starting Jenkins [ 确定 ]
10月 29 12:50:15 localhost.localdomain systemd[1]: Started LSB: Jenkins Automation Server.
[root@localhost ~]#
- 方案二:软连接
通过软连接的快捷方式,把原配置中/usr/bin/java的java应用程序直接指向自定义安装的java应用程序
cmd创建软连接指令:ln -s /usr/local/java/jdk1.8.0_191/bin/java /usr/bin/java
该指令会在/usr/bin/目录下生产一个java的快捷程序(如下图),这种方式是不需要修改到原/etc/rc.d/init.d/jenkins配置文件,即也不需要重新加载配置文件的

创建软连接之后的systemctl status jenkins信息如下
[root@localhost ~]# systemctl start jenkins
[root@localhost ~]# systemctl status jenkins
● jenkins.service - LSB: Jenkins Automation Server
Loaded: loaded (/etc/rc.d/init.d/jenkins; bad; vendor preset: disabled)
Active: active (running) since 四 2020-10-29 13:23:42 CST; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 31994 ExecStop=/etc/rc.d/init.d/jenkins stop (code=exited, status=0/SUCCESS)
Process: 32455 ExecStart=/etc/rc.d/init.d/jenkins start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/jenkins.service
└─32481 /usr/bin/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/...
10月 29 13:23:42 localhost.localdomain systemd[1]: Starting LSB: Jenkins Automation Server...
10月 29 13:23:42 localhost.localdomain runuser[32460]: pam_unix(runuser:session): session opened for user jenkins by (uid=0)
10月 29 13:23:42 localhost.localdomain jenkins[32455]: Starting Jenkins [ 确定 ]
10月 29 13:23:42 localhost.localdomain systemd[1]: Started LSB: Jenkins Automation Server.
[root@localhost ~]#
到此,Jenkins已经可以通过使用自定安装的 java jdk 进行运行了!
然后,要是细心的人,通过我上面贴出来的日志,应该会发现两种方案有什么区别!这才是我们应该发现的细节!加油

本文介绍了如何在Linux系统中更改Jenkins启动时使用的Java环境。提供了两种方案:一是直接修改Jenkins启动脚本,将默认的/usr/bin/java替换为自定义的Java路径;二是通过软链接的方式,将/usr/bin/java链接到自定义Java安装的路径。这两种方法都可以确保Jenkins使用指定版本的Java运行。操作后,通过systemctl status jenkins命令确认Jenkins已成功启动并使用了新的Java环境。
523

被折叠的 条评论
为什么被折叠?



