从命令行运行Jenkins与作为Windows服务运行
我遇到了一个非常奇怪的问题。我需要在Jenkins中配置代理,以便
能够访问其中一项作业的SVN存储库。我这样做有两种方式:
从命令行使用必需的参数启动Jenkins
在jenkins.xml文件中定义参数时,将Jenkins作为Windows服务启动。
:
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
:
<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.logjenkins.out.log
与从命令行启动Jenkins一样,我需要做些什么来使Jenkins作为服务获得相同的结果?我缺少什么配置?
回答:
Jenkins作为Windows服务不会在当前用户下运行,而是默认在LocalSystem帐户下运行。
请参阅MSDN:使用LocalSystem帐户作为服务登录帐户和SO:“ Local System”帐户和“ Network
Service”帐户之间的区别?对于影响。
以上是 从命令行运行Jenkins与作为Windows服务运行 的全部内容, 来源链接: utcz.com/qa/428362.html