过度的严厉会造成恐惧,过分的温和会有失威严。不要严厉得使人憎恶,也不要温和得使人胆大妄为——萨迪
今天看到ubuntu上的jenkins这里有提示

点了一下,提示有新版本更新
又手贱点了一下,然后完蛋,过了一会儿,jenkins挂掉了
我打开finalShell(sh连接客户端)尝试重启
systemctl start jenkins提示启动失败,使用
代码语言:javascript复制systemctl status jenkins
# 或者
journalctl -xe查看详情,但是我没看明白报错
又试了试
代码语言:javascript复制jenkins start
这次看懂了,提示java版本不对,需要java 11 or 17
Jenkins requires Java versions [17, 11] but you are running with Java 1.8 from /jdk路径/java原来升级了需要新jdk,那就去下一个,然后指定一下jenkins启动使用jdk11嘛
总不能升级当前所有jdk环境为java11吧,迁移成本太大了
于是下载jdk11
wget https://repo.huaweicloud.com/java/jdk/11 28/jdk-11_linux-x64_bin.tar.gz然后解压
代码语言:javascript复制tar -zxvf jdk-11_linux-x64_bin.tar.gz移动目录
代码语言:javascript复制mv ./jdk-11 /usr/local/接下来就是指定jenkins环境了
systemctl status jenkins.service里面包含一个路径
代码语言:javascript复制jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)然后cat(或者打开)这个路径的文件
cat /lib/systemd/system/jenkins.service发现其中配置了一项

进入这个文件
代码语言:javascript复制vim /usr/bin/jenkins这是一个sh脚本,其中包含一个main函数
而且还有很多JAVA_HOME

我们echo打印一下

再次执行
代码语言:javascript复制jenkins start可以看到的确输出,那我们就在这里指定jdk环境
JAVA_HOME=/usr/local/jdk-11
然后再次运行,发现提示

我们发现这个提示是在sh脚本的main函数里输出的

这里有一个check_java_version的函数
我们找一下
然后发现到这里原来写的获取java版本号的逻辑有问题,echo到java_version的变量为空的

于是手动在下面加了个java_version="11"
再次重启jenkins
jenkins start提示端口占用,重启服务
代码语言:javascript复制systemctl restart jenkins无报错信息,访问地址,升级成功



