Jenkins启动失败的7个解决方案
Jenkins作为开源工具,在它的版本迭代过程中,多次出现过更新后无法启动的情况,如下:
1、需要注意jdk版本和路径问题(注意向后看第5个问题)
Jenkins官网推荐使用JDK11和JDK17,固守JDK8的建议更新一下。
先使用which java查看本机的JDK环境路径:
再使用vim /etc/init.d/jenkins进行校对,要和上图内容保持一致:
2、用户名问题
查看/etc/sysconfig/jenkins的JENKINS_USER="root",如果不是root,而是jenkins或者其它,要改成root。如果已经是root,则相反操作改为jenkins。
或者/usr/lib/systemd/system/jenkins.service的,同上处理。
对于Jenkins的老版本:
vim /etc/sysconfig/jenkins
systemctl daemon-reload
对于Jenkins的新版本:
vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root
systemctl daemon-reload
systemctl start jenkins.service
systemctl stop jenkins.service
systemctl status jenkins.service
3、log权限问题
因为某种原因,jenkins.log权限被限制:
cd /var/log
chmod 777 -R jenkins/
4、启动方法问题(如果是CentOS9,则需要先执行如下第一步)
cp /etc/rc.d/init.d/functions /etc/init.d/
cd /etc/init.d/
./jenkins status
./jenkins stop
./jenkins start
5、无法使用systemctl启动jenkins,最经常出现的就是journalctl -xe错误(注意向前看第1个问题)
原因是因为systemctl启动时调用的jenkins.service文件在/usr/lib/systemd/system目录下,无法调用/etc/init.d/下的jenkins。所以如果遇到通过服务方式而无法启动jenkins,则需要修改jenkins.service来进行适配:
vim /usr/lib/systemd/system/jenkins.service
修改上图为:
Environment="JAVA_HOME=/usr/java/jdk-17.0.4"
其中/usr/java/jdk-17.0.4为使用which java命令得到的路径。
systemctl daemon-reload
systemctl enable jenkins
systemctl start jenkins.service
systemctl stop jenkins.service
systemctl status jenkins.service
6、端口被占用,可能需要修改端口(修改前kill所有jenkins进程)
对于Jenkins的老版本:
vim /etc/sysconfig/jenkins
systemctl daemon-reload
对于Jenkins的新版本:
vim /usr/lib/systemd/system/jenkins.service
systemctl daemon-reload
以上两处为Jenkins的端口修改配置,建议两者端口号数据保持一致。
systemctl start jenkins.service
systemctl stop jenkins.service
systemctl status jenkins.service
netstat -ntap | grep 31000
7、卸载jenkins
最后的办法了,希望你们不要看到这里。
yum remove jenkins
rm -rf /etc/sysconfig/jenkins.rpmsave
rm -rf /var/cache/jenkins/
rm -rf /etc/init.d/jenkins.rpmsave
重新安装jenkins
./jenkins status
./jenkins stop
./jenkins start