从命令行运行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.log

jenkins.out.log

与从命令行启动Jenkins一样,我需要做些什么来使Jenkins作为服务获得相同的结果?我缺少什么配置?

回答:

Jenkins作为Windows服务不会在当前用户下运行,而是默认在LocalSystem帐户下运行。

请参阅MSDN:使用LocalSystem帐户作为服务登录帐户和SO:“ Local System”帐户和“ Network

Service”帐户之间的区别?对于影响。

以上是 从命令行运行Jenkins与作为Windows服务运行 的全部内容, 来源链接: utcz.com/qa/428362.html

回到顶部