jenkins启动报错,一直无法启动
问题背景
服务器:阿里云ECS
操作系统:Centos7
Jenkins版本:2.405
通过添加jenkins仓库进行安装,安装成功,但是未能启动成功,一直处于失败状态
解决方式
1、检查用户权限
1
2
3
|
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,结果如下
1
|
jenkins:x:997:995:Jenkins Automation Server:/var/lib/jenkins:/bin/false
|
/bin/false表示jenkins用户的登陆shell是一个无效的shell,用户无法通过终端登录,使用以下指令进行授权
1
2
3
4
5
6
7
8
|
# 1、设置用户密码
sudo passwd jenkins
# 2、解锁用户
sudo passwd -u jenkins
# 3、更改登录 shell
sudo usermod -s /bin/bash jenkins
|
3、为了使jenkins用户能够使用sudo指令,在’/etc/sudoers’文件中赋予相关权限
1
|
jenkins ALL=(ALL) NOPASSWD: ALL
|
4、完成上面的配置后,启动jenkins
执行systemctl start jenkins来启动jenkins时出错,但是执行java -jar /usr/share/java/jenkins.war可以正常启动,报错内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
jenkins.service - Jenkins Continuous Integration Server
Loaded: 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 ago
Main 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,配置如下
1
2
|
ExecStart=/usr/bin/jenkins
WorkingDirectory=/var/lib/jenkins
|
说明这两项没有问题
然后赋予相关目录的执行权限
1
2
3
4
|
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chown jenkins:jenkins /usr/share/java/jenkins.war
# 注:不同版本的jenkins.war路径可能不同,可以通过sudo find / -name jenkins.war进行查找
|