jenkins启动报错,一直无法启动
jenkins启动报错,一直无法启动
问题背景
服务器:阿里云ECS
操作系统:Centos7
Jenkins版本:2.405
通过添加jenkins仓库进行安装,安装成功,但是未能启动成功,一直处于失败状态
解决方式
1、检查用户权限
sudo passwd -S jenkins
# 提示信息如下,说明jenkins用户被锁定了
jenkins LK 2024-09-13 -1 -1 -1 -1 (Password locked.)
2、检查/etc/passwd
中jenkins
用户的shell
是否有效:grep jenkins /etc/passwd
,结果如下
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
/bin/false
表示jenkins
用户的登陆shell
是一个无效的shell
,用户无法通过终端登录,使用以下指令进行授权
# 1、设置用户密码
sudo passwd jenkins# 2、解锁用户
sudo passwd -u jenkins# 3、更改登录 shell
sudo usermod -s /bin/bash jenkins
3、为了使jenkins
用户能够使用sudo
指令,在’/etc/sudoers’文件中赋予相关权限
jenkins ALL=(ALL) NOPASSWD: ALL
4、完成上面的配置后,启动jenkins
执行systemctl start jenkins
来启动jenkins时出错,但是执行java -jar /usr/share/java/jenkins.war
可以正常启动,报错内容如下
jenkins.service - Jenkins Continuous Integration ServerLoaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled)Active: failed (Result: start-limit) since Mon 2024-09-23 15:21:50 CST; 1h 7min agoMain PID: 11921 (code=exited, status=203/EXEC)Sep 23 15:21:50 WHY6666 systemd[1]: Failed to start Jenkins Continuous Integration Server.
Sep 23 15:21:50 WHY6666 systemd[1]: Unit jenkins.service entered failed state.
Sep 23 15:21:50 WHY6666 systemd[1]: jenkins.service failed.
Sep 23 15:21:50 WHY6666 systemd[1]: jenkins.service holdoff time over, scheduling restart.
Sep 23 15:21:50 WHY6666 systemd[1]: Stopped Jenkins Continuous Integration Server.
Sep 23 15:21:50 WHY6666 systemd[1]: start request repeated too quickly for jenkins.service
Sep 23 15:21:50 WHY6666 systemd[1]: Failed to start Jenkins Continuous Integration Server.
Sep 23 15:21:50 WHY6666 systemd[1]: Unit jenkins.service entered failed state.
Sep 23 15:21:50 WHY6666 systemd[1]: jenkins.service failed.。
- 修改
/usr/lib/systemd/system/jenkins.service
文件,确保ExecStart
指向正确的Jenkins可执行文件 - 目标目录的执行权限不够(如WorkingDirectory以及jenkins.war等)
- 没有安装java环境
- 定义的
workingDirectory
路径错误
检查ExecStart
配置和WorkingDirectory
路径,/usr/lib/systemd/system/jenkins.service
,配置如下
ExecStart=/usr/bin/jenkins
WorkingDirectory=/var/lib/jenkins
说明这两项没有问题
然后赋予相关目录的执行权限
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chown jenkins:jenkins /usr/share/java/jenkins.war# 注:不同版本的jenkins.war路径可能不同,可以通过sudo find / -name jenkins.war进行查找