Windows services jenkins服务无法在windows 2008上启动

Windows services jenkins服务无法在windows 2008上启动,windows-services,windows-server-2008,jenkins,Windows Services,Windows Server 2008,Jenkins,我正在尝试将Jenkins作为服务安装到Windows Server 2008数据中心(SP2)上。我似乎无法让它作为服务运行,而且 正在寻找任何有助于实现这一目标的想法 当我尝试使用本机Windows软件包安装Jenkins时,我在msiexec日志中得到“错误1920.服务Jenkins无法启动” 对于手动安装,我已执行了以下步骤: 已安装java 32位 用java-jar Jenkins.war启动Jenkins 转到管理Jenkins并将其设置为作为Windows服务运行 告诉Jen

我正在尝试将Jenkins作为服务安装到Windows Server 2008数据中心(SP2)上。我似乎无法让它作为服务运行,而且 正在寻找任何有助于实现这一目标的想法

当我尝试使用本机Windows软件包安装Jenkins时,我在msiexec日志中得到“错误1920.服务Jenkins无法启动”

对于手动安装,我已执行了以下步骤:

  • 已安装java 32位
  • 用java-jar Jenkins.war启动Jenkins
  • 转到管理Jenkins并将其设置为作为Windows服务运行
  • 告诉Jenkins重新启动自己作为一个服务
在这一点上,詹金斯死了,没有回来

当我尝试手动启动Jenkins时,出现错误1053(服务没有响应)。我找不到任何日志文件或其他信息

欢迎您提出任何意见或建议,我也很想听听您的意见 任何在该O/S(或windows 2003服务器)上使用过它的人


非常感谢

建议:如果您可以避免,请不要在Windows上运行Jenkins作为服务-您可能会遇到各种与权限相关的问题以及在后台运行的问题。缺点是当机器重新启动时,它不会自动启动,但通常情况下,人们无法忍受。根据我的经验,詹金斯在撞车方面非常健壮。如果您想格外小心,请编写一个包装器,经常检查Jenkins是否还活着(例如,通过尝试通过HTTP连接到Jenkins),如果Jenkins已经死了,则重新启动它

随附的是一个Python脚本,它可以做到这一点(无担保、无责任等):

''用法:
hudson.py[]''
#启动/恢复Hudson/Jenkins的脚本
#该脚本通过尝试连接到Hudson的HTTP端口来检查Hudson是否处于活动状态
#如果连接失败-它将尝试重新启动Hudson
导入系统
导入时间
导入httplib
导入操作系统
HTTPTimeout=10
检查间隔=300
DefaultHudsonPort=8081
如果(uuuu name_uuuuuu=='uuuuuu main_uuuuu'):
如果len(sys.argv)>2:
打印文件__
系统出口(1)
elif len(系统参数)=2:
portNum=int(sys.argv[1])
其他:
portNum=DefaultHudsonPort
httpConnection=None
尽管如此:
如果不是httpConnection:
httpConnection=httplib.httpConnection(“127.0.0.1”,portNum,timeout=HTTPTimeout)
尝试:
httpConnection.connect()
httpConnection.close()
除:
打印“(重新)在端口%d“%portNum”上启动Hudson/Jenkins
system(“java-jar hudson.war--httpPort=%d”%portNum)
睡眠时间(检查间隔)

我在windows 2003 server上遇到了类似的问题。我已经安装了.net framwork 4.0,但jenkins(v1.4.60)无法使用此框架。安装.net framework 2.0(v2.0.50727)后,问题得到解决。

版本1.498具有更强的安全性,可以将Jenkins Slave作为服务中断

建议包括:

  • 停止服务
  • 如果服务存在,请卸载该服务(
    sc delete jenkinsslave-C\uu Jenkins
  • 删除旧的jenkins-slave.exe、slave.jar和jenkins-slave.xml
  • 启动web客户端并让它安装服务
  • 编辑jenkins-slave.xml,使其看起来像这样重要的部分是JNLPCresidences
    -Xrs-jar“%BASE%\slave.jar”-JNLPCresidences:-jnlpUrlhttp:///computer//slave-agent.jnlp
  • 我发现删除slave.jar并以登录用户的身份启动web客户机效果最好,您可以获得一个秘密,无需编辑XML

    如果我不删除我在编辑jenkins-slave.xml时发现的slave.jar,并删除
    参数中的
    秘密
    ,则根本没有任何凭据(安全漏洞?)。见jenkins-slave.err

    "-secret" is not a valid option
    
    jenkins slave.xml

    ...
    <service>
      <id>jenkinsslave-D__Jenkins</id>
      <name>Jenkins Slave</name>
    ...
      <executable>C:\Program Files\Java\jre7\bin\java.exe</executable>
      <arguments>-Xrs  -jar "%BASE%\slave.jar" -jnlpUrl http://jenkins.domain/jenkins/computer/mycomputername/slave-agent.jnlp </arguments> <!-- -secret fafd7bf18fdcc48ffb17fe1ff0a072ce5d33b004769b351e9d633f875b63fb59 -->
    ...
    
    。。。
    詹金斯奴隶-D_uu詹金斯
    詹金斯奴隶
    ...
    C:\ProgramFiles\Java\jre7\bin\Java.exe
    -Xrs-jar“%BASE%\slave.jar”-jnlpUrlhttp://jenkins.domain/jenkins/computer/mycomputername/slave-agent.jnlp  
    ...
    
    我也有同样的问题,但对我来说,这是jenkins.xml配置文件的问题。它不是正确的XML,因此Jenkins无法正确加载它。我发现这是一个配置错误,作为管理员在命令提示符下执行jenkins.exe,它给了我一个正确的错误输出。

    我发现jenkins服务的默认设置只允许256m的堆。我猜他们希望我们只写“Hello World”。在偶尔出现
    PermGen
    错误后,我发现了这一点。但是我发现我不能用所有的

    -Xrs -Xms<value> -Xmx<value> --XX:PermSize=<value> --XX:MaxPermSize=<value>
    
    -Xrs-Xms-Xmx--XX:PermSize=--XX:MaxPermSize=
    
    我只能在设置时启动Jenkins

    -Xrs -Xms<value> -XX:MaxPermSize=<value>
    
    -Xrs-Xms-XX:MaxPermSize=
    
    KCD提供的答案是完整的,并且非常相关。但有时我们也会因为一个愚蠢的错误而面临这个问题

    我还遇到了类似的问题,当我从命令提示符启动Jenkins时,我收到了错误消息

    我进入的命令是

    $: start jenkins.exe
    
    当我参考自己的笔记后,我发现这个问题要简单得多。我错误地使用了命令。应该是:

    $: jenkins.exe start/stop/restart
    

    正确输入命令后,问题得到解决。

    我通过设置Java dir path解决了同样的问题。

    find,但它对我不起作用。所以,我的解决方法很简单——只需在另一台机器上安装jenkins(使用相同的操作系统),就可以了。谢谢你的建议!我认为这不是一个好主意,我想不出一个好的环境,您应该让会话保持打开状态,因为该产品不支持功能,因为它应该添加jlnpCredentials,这对于v1.514;)来说已经不再重要,也不再需要了。)是的,我认为这个秘密取代了凭证,有趣的是,它与Neither一起工作。如果你有v1.499之前的版本,就会有一些代码路径,这取决于slave.xml。。。但是现在,我
    $: jenkins.exe start/stop/restart