我遇到了一个非常奇怪的问题。我需要在我的Jenkins中配置代理才能在其中一个作业中访问SVN存储库。我有两种方式:
jenkins.xml
文件中定义。从命令行开始:
C:\>java -DJENKINS_HOME="C:\.jenkins" -Dhudson.model.DirectoryBrowserSupport.CSP ="`script-src 'unsafe-inline';`" -Dhttp.proxyHost=localhost -Dhttp.proxyPort=312 8 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128 -jar %JENKINS_HOME%\jenkins .war
作为服务开始(以下是jenkins.xml内容):
<executable>java</executable>
<arguments>-DJENKINS_HOME="C:\.jenkins" -Dhudson.model.DirectoryBrowserSupport.CSP="`script-src 'unsafe-inline';`" -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128 -Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128 -jar "%JENKINS_HOME%\jenkins.war"</arguments>
所以这完全一样。但问题是,当我使用命令行启动Jenkins时,代理工作正常。但是,当我启动Jenkins作为服务时,无法访问repo(通过代理),我收到此错误消息:
请注意,如果我查看“系统信息”部分中的“系统属性”,代理参数在两种情况下都显示相同,以便正确应用配置:
显然Jenkins的启动方式有所不同,具体取决于Jenkins的启动方式(命令行或Windows服务)。强调这一假设的是,我发现只有在我将Jenkins作为服务启动时才写入一些日志文件,但是当我从命令行启动它时却没有。我在谈论这些日志文件:
jenkins.wrapper.log
jenkins.out.log
当我从命令行启动时,我需要做些什么才能从Jenkins获得与服务相同的结果?我缺少什么配置?
答案 0 :(得分:1)
Jenkins作为Windows服务不会在您当前的用户下运行,但默认情况下会在LocalSystem Account下运行。
有关含义,请参阅MSDN: Using the LocalSystem Account as a Service Logon Account和SO: The difference between the 'Local System' account and the 'Network Service' account?。