配置文件错误导致jenkins无法启动


     对于运维人员来说备份数据是非常重要的,不管理数据库还是配置文件。在每次变更的操作最好做一个文件备份。这里仅记录一下jenkins的配置文件错误导致无法启动服务的问题。

 

修改配置文件前切记先备份,以防错误导致数据的丢失。

首先找到jenkins的安装目录,如果使用rpm安装的可以这样找到。

  1. rpm -ql jenkins-2.89.4-1.1.noarch 

默认rpm安装目录在:/usr/lib/jenkins,而配置文件config.xml就是此目录下;

  1. cp config.xml{,.bak}   #备份配置文件 

其它的安装目录可根据错误信息找到。

错误信息提示如下:

 

  1. org.xmlpull.v1.XmlPullParserException: only 1.0 is supported as <?xml version not '1.1' (position: START_DOCUMENT seen <?xml version=\'1.1\'... @1:19)  
  2.     at org.xmlpull.mxp1.MXParser.parseXmlDeclWithVersion(MXParser.java:2608) 
  3.     at org.xmlpull.mxp1.MXParser.parseXmlDecl(MXParser.java:2592) 
  4.     at org.xmlpull.mxp1.MXParser.parsePI(MXParser.java:2466) 
  5.     at org.xmlpull.mxp1.MXParser.parseProlog(MXParser.java:1447) 
  6.     at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1395) 
  7.     at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093) 
  8.     at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:109) 
  9. Caused: com.thoughtworks.xstream.io.StreamException:  : only 1.0 is supported as <?xml version not '1.1' (position: START_DOCUMENT seen <?xml version=\'1.1\'... @1:19)  
  10.     at com.thoughtworks.xstream.io.xml.XppReader.pullNextEvent(XppReader.java:124) 
  11.     at com.thoughtworks.xstream.io.xml.AbstractPullReader.readRealEvent(AbstractPullReader.java:148) 
  12.     at com.thoughtworks.xstream.io.xml.AbstractPullReader.readEvent(AbstractPullReader.java:141) 
  13.     at com.thoughtworks.xstream.io.xml.AbstractPullReader.move(AbstractPullReader.java:118) 
  14.     at com.thoughtworks.xstream.io.xml.AbstractPullReader.moveDown(AbstractPullReader.java:103) 
  15.     at com.thoughtworks.xstream.io.xml.XppReader.<init>(XppReader.java:63) 
  16.     at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:54) 
  17.     at com.thoughtworks.xstream.io.xml.AbstractXppDriver.createReader(AbstractXppDriver.java:65) 
  18.     at hudson.XmlFile.unmarshal(XmlFile.java:167) 
  19. Caused: java.io.IOException: Unable to read /var/lib/jenkins/config.xml 
  20.     at hudson.XmlFile.unmarshal(XmlFile.java:169) 
  21.     at jenkins.model.Jenkins.loadConfig(Jenkins.java:3067) 
  22.     at jenkins.model.Jenkins.access$1200(Jenkins.java:304) 
  23.     at jenkins.model.Jenkins$14.run(Jenkins.java:3085) 
  24.     at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169) 
  25.     at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:282) 
  26.     at jenkins.model.Jenkins$5.runTask(Jenkins.java:1068) 
  27.     at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:210) 
  28.     at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117) 
  29.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
  30.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
  31.     at java.lang.Thread.run(Thread.java:745) 
  32. Caused: org.jvnet.hudson.reactor.ReactorException 
  33.     at org.jvnet.hudson.reactor.Reactor.execute(Reactor.java:269) 
  34.     at jenkins.InitReactorRunner.run(InitReactorRunner.java:47) 
  35.     at jenkins.model.Jenkins.executeReactor(Jenkins.java:1102) 
  36.     at jenkins.model.Jenkins.<init>(Jenkins.java:904) 
  37.     at hudson.model.Hudson.<init>(Hudson.java:86) 
  38.     at hudson.model.Hudson.<init>(Hudson.java:82) 
  39.     at hudson.WebAppMain$3.run(WebAppMain.java:233) 
  40. Caused: hudson.util.HudsonFailedToLoad 
  41.     at hudson.WebAppMain$3.run(WebAppMain.java:250) 

 

这里注意红字的部分,提示配置文件中只支持1.0,而不是1.1。然后查看配置文件config.xml发现第一行中果然是1.1,把它改回1.0试下。

  1. sed -i 's/1.1/1.0/' config.xml 

重新启动Jenkins服务即可以成功看到界面了。

说明,可能其它的升级版本原因也可能会导致类似的问题,但是最重要的是查看错误日志,提示信息,找解决方法。