【问题标题】:System properties management系统属性管理
【发布时间】:2015-06-14 20:41:41
【问题描述】:

在 Jenkins 中是否有任何“适当”的方法来更改系统属性?改变它们的最简单/最快的方法是什么?例如,我需要关闭无用的(在我的情况下)ping 线程。

【问题讨论】:

    标签: jenkins


    【解决方案1】:

    如果您真的想要一种快速简单的方法来更改系统属性,您可以使用script console

    System.setProperty("hudson.remoting.Launcher.pingIntervalSec", 0)
    

    但这不会在重新启动后继续存在。要使其永久化,请将设置添加到 java args。对我(CentOS,Jenkins 2.7.1)来说,这是一条大约在/etc/sysconfig/jenkins 中间的一行(对于其他发行版,我相信它是/etc/default/jenkins),您应该将您的选项添加到现有列表中,如下所示:

    JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.remoting.Launcher.pingIntervalSec=0"
    

    做出更改后,您必须重新启动 Jenkins(感谢 Mark Tickner)

    【讨论】:

    • 更新 JENKINS_JAVA_OPTIONS 对我有用,但我必须重新启动服务器才能生效
    • 使用 System.setProperty 似乎不起作用,至少对于 hudson.slaves.WorkspaceList 不起作用。我将它设置为“+”并且 System.getProperty 验证了这一点,但它仍然使用默认值“@”。
    • Ubuntu 16.04 /etc下没有sysconfig文件夹,如何解决?
    • @vikramvi 我相信它是非 RedHat 发行版的 /etc/default 。答案已更新。
    • 在基于 Debian / Ubuntu 的 Linux 发行版上,您应该使用 JAVA_ARGS
    【解决方案2】:

    如果您在没有 tomcat 的情况下在 windows 上将 Jenkins 作为服务运行,您可以编辑 jenkins.xml。在-jar 之前添加<service><arguments> 中的属性。 比重启服务。

    <service>
        <!-- ... -->
        <arguments>-Xrs -Xmx256m  -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle  -Dhudson.tasks.MailSender.SEND_TO_UNKNOWN_USERS=true  -Dhudson.tasks.MailSender.SEND_TO_USERS_WITHOUT_READ=true  -jar "%BASE%\jenkins.war" --httpPort=8080 --webroot="%BASE%\war"</arguments>
    

    【讨论】:

      【解决方案3】:

      wiki 上列出了可用的系统属性以及如何设置它们:
      https://wiki.jenkins-ci.org/display/JENKINS/Features+controlled+by+system+properties

      要禁用slave ping,您可以将hudson.remoting.Launcher.pingIntervalSec 设置为0

      系统属性的设置方式与任何其他 Java 程序相同,例如:
      java -Dhudson.remoting.Launcher.pingIntervalSec=0 -jar jenkins.war

      【讨论】:

        【解决方案4】:

        如果您在 Windows 上使用 Tomcat,您可以编辑文件 C:\apache-tomcat-7.0.67\conf\catalina.properties 并简单地添加行

        hudson.DNSMultiCast.disabled=true

        在文件末尾。然后保护文件并重新启动 Tomcat。

        【讨论】:

          【解决方案5】:

          我有类似的问题:我需要禁用 DNSMultiCast(设置 hudson.DNSMultiCast.disabled = false),但我不明白该怎么做

          例如,https://wiki.jenkins-ci.org/display/JENKINS/Features+controlled+by+system+properties - 有这样的建议“......在 -jar 参数之前传递所有这些参数......”但我在 tomcat 下运行 jenkins,所以我不确定我是否可以更改启动参数。

          我尝试将 /etc/tomcat6/Catalina/localhost/jenkins.xml 更改为

          <?xml version="1.0" encoding="UTF-8"?>
          <Context >
           <Environment name="JENKINS_HOME" value="/var/jenkins"
                   type="java.lang.String" override="false"/>
           <Environment name="hudson.DNSMultiCast.disabled" value="true"
                   type="java.lang.Boolean" override="false"/>
          </Context>
          

          但我没有帮助。 谁能解释一下使用tomcat时如何更改jenkins系统属性。

          【讨论】:

          【解决方案6】:

          也许这是一个糟糕的 hack,但我将它设置在需要设置的管道作业中。
          像这样:

          System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")  // allow formatted HTML pages to be published
          

          它似乎有效 - 据我所知......

          【讨论】:

            【解决方案7】:

            我按照上面提到的每个步骤操作,但都失败了。

            所以我确实使用 timedatectl set-timezone Europe/London 命令更改了系统时区,然后我重新启动了 jenkins 服务 service jenkins restart 成功了。

            1. 我使用的是 Rehdat 7.5
            2. Jenkins 版本 2.168。
            3. Jenkins 通过yum install jenkins 安装

            我希望这会对某人有所帮助。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-08-17
              • 2013-06-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多