You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Jenkins升级后启动失败:无法识别参数--ajp13Port=-1

Jenkins升级后启动失败:无法识别参数--ajp13Port=-1

嗨,我之前处理过好几个类似的Jenkins升级启动失败的案例,这个错误其实很好解决——问题出在Jenkins新版本里把AJP端口的参数名改了!

从2.346.x版本左右开始,Jenkins将旧的--ajp13Port参数替换成了--ajpPort,而你的系统里还保留着旧的配置参数,所以启动时才会抛出“无法识别选项”的错误。

下面是具体的修复步骤,针对Debian系统:

第一步:找到Jenkins的启动配置文件

在Debian上,Jenkins的启动配置通常存在两个地方,你可以按顺序检查:

  • /etc/default/jenkins:这是传统的环境变量配置文件
  • /lib/systemd/system/jenkins.service 或者 /etc/systemd/system/jenkins.service.d/override.conf:如果你的系统用systemd管理服务,就看这几个文件

第二步:修改错误的参数

情况1:修改/etc/default/jenkins文件

  1. 用编辑器打开文件:sudo nano /etc/default/jenkins
  2. 找到JENKINS_ARGS这一行,看看里面是不是包含--ajp13Port=-1
  3. --ajp13Port=-1替换成--ajpPort=-1
  4. 保存退出(按Ctrl+O,回车,再Ctrl+X)
  5. 重启Jenkins服务:sudo systemctl restart jenkins

情况2:修改systemd配置文件

如果你的Jenkins是用systemd管理的,直接修改主配置文件可能会被系统更新覆盖,更稳妥的方法是创建override配置:

  1. 打开systemd的override编辑器:sudo systemctl edit jenkins
  2. 在弹出的编辑器里,输入以下内容(注意保留你原有配置里的其他参数,比如--httpPort这些,只替换AJP相关的部分):
[Service]
ExecStart=
ExecStart=/usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajpPort=-1 $JENKINS_ARGS
  1. 保存退出后,重新加载systemd配置:sudo systemctl daemon-reload
  2. 最后重启Jenkins:sudo systemctl restart jenkins

额外检查

如果上面的操作后还是不行,建议排查一下有没有其他自定义的启动脚本或者配置文件(比如你自己添加的Jenkins启动参数文件),确保所有用到--ajp13Port的地方都替换成--ajpPort

备注:内容来源于stack exchange,提问作者Aleks G

火山引擎 最新活动