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 进行运行了!
然后,要是细心的人,通过我上面贴出来的日志,应该会发现两种方案有什么区别!这才是我们应该发现的细节!加油
版权声明:本文为T_double原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。