我遇到了一个非常奇怪的问题。我需要在Jenkins中配置代理,以便 能够访问其中一项作业的SVN存储库。我这样做有两种方式:
从命令行使用必需的参数启动Jenkins 在jenkins.xml文件中定义参数时,将Jenkins作为Windows服务启动。
Starting from command line :
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
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
script-src 'unsafe-inline';
Starting as service (below is the jenkins.xml contents) :
<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作为 服务启动时,(通过代理)存储库无法访问,并且出现以下错误 消息:
无法访问存储库错误
请注意,如果我在“系统信息”部分中查看“系统属性” ,则在两种情况下代理参数看起来都相同,因此 可以正确应用配置:
系统属性
显然,Jenkins的启动方式有所不同,具体取决于启动方式(命令行或Windows服务)。加强这一假设的 是,我看到仅当我将Jenkins作为服务启动时才写入某些日志文件,而当我从命令行启动它时却没有写入。我正在谈论这些日志文件:
jenkins.wrapper.log jenkins.out.log
与从命令行启动Jenkins一样,我需要做些什么来使Jenkins作为服务获得相同的结果?我缺少什么配置?
Jenkins作为Windows服务不会在当前用户下运行,而是默认在LocalSystem帐户下运行。
请参阅MSDN:使用LocalSystem帐户作为服务登录帐户和SO:“ Local System”帐户和“ Network Service”帐户之间的区别?对于影响。