jenkins启动报错,一直无法启动

发布于:2025-07-01 ⋅ 阅读:(23) ⋅ 点赞:(0)

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/passwdjenkins用户的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 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,配置如下

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进行查找