29

如何更改詹金斯在其奴隶中存储临时数据的位置。目前,它关闭了与我的奴隶的连接,因为它抱怨以下内容

Disk space is too low. Only 0.119GB left on /tmp.

我想将 tmpdir 位置移动到类似/var/tmp/而不是/tmp. 我怎样才能做到这一点?

4

10 回答 10

27

只需将“-Djava.io.tmpdir=/path/to/tmp”添加到 java 命令行选项(您不需要任何额外的服务包装器)。

根据您的安装,可能存在可以进入的现有启动脚本和/或配置文件。在我的 fedora 系统上,我可以将选项添加到 /etc/sysconfig/jenkins 文件:

## Type:        string
## Default:     "-Djava.awt.headless=true"
## ServiceRestart: jenkins
#
# Options to pass to java when running Jenkins.
#
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Djava.io.tmpdir=/var/tmp"
于 2014-02-19T02:29:43.293 回答
8

在 debian/ubuntu 机器上,将以下内容添加到文件中/etc/default/jenkins

# use a different tmpdir for jenkins
JAVA_ARGS="$JAVA_ARGS -Djava.io.tmpdir=/var/tmp/"
于 2015-10-28T14:27:15.727 回答
5

如果使用“SSH Slaves Plugin”,您可以在“Advanced settings”中设置JVM Options并添加:

-Djava.io.tmpdir=/my/temp
于 2019-09-30T06:24:53.013 回答
2

您可以使用Java Service Wrapper。并配置你的包装器(看例子)

wrapper.java.additional.2=-Djava.io.tmpdir=../tmp

或者您可以创建符号链接/var/tmp文件夹并安装家庭 jenkins 守护程序。

于 2013-03-28T08:31:42.057 回答
2

在现代 Jenkins 上,您可以在 Jenkins 配置中使用 UI 选项,该选项称为“覆盖临时目录位置”

在此处输入图像描述

于 2019-04-24T12:15:19.027 回答
2

在 Windows 代理上,假设您已将其设置为包含对 Java Web 启动调用的 Windows 服务,您应该在代理的目标文件夹中看到一个 jenkins-slave.xml 文件。

您可以编辑此文件并添加标签-Djava.io.tmpdir=D:\Whatever\folder\<arguments>配置临时文件夹。例如

 <arguments>-Xrs -Djava.io.tmpdir=D:\Temp\ -jar "%BASE%\slave.jar" -jnlpUrl http://jenkins-master-whatever/slave-agent.jnlp -secret 999999999999999999999999999999999999999999999999999999999999</arguments>

您需要重新启动服务才能看到您所做的修改。

于 2019-05-16T06:48:59.930 回答
1

在 FreeBSD 上运行,您可以通过将此行添加到您的/etc/rc.conf:

jenkins_java_opts="-Djava.io.tmpdir=/var/tmp"
于 2014-07-29T12:49:27.660 回答
1

当 jenkins 被打包时,例如作为 Windows 服务引导,将配置添加到 %JENKINS_HOME%\jenkins.xml<arguments>元素或从属设备 %JENKINS_HOME%\jenkins-slave.xml

于 2016-03-22T16:36:47.643 回答
1

与其他答案相同的信息,但来自 CloudBees 的官方支持文章 regading JNA error on Jenkins Master(尽管这同样适用于 Jenkins 节点):

https://support.cloudbees.com/hc/en-us/articles/215281717-Jenkins-fails-to-start-with-JNA-error

要更改 Jenkins 使用的临时目录,您需要:

  • 根据您的操作系统附加-Djava.io.tmpdir=$JENKINS_HOME/tmpJENKINS_JAVA_OPTIONS变量/etc/sysconfig/jenkins或文件中/etc/default/jenkins
  • /var/lib/jenkins/tmp使用运行 Jenkins 进程的 Unix 用户创建
于 2017-04-21T13:56:07.150 回答
0

在从属设备上,您可以将其添加到 Jenkins -Djava.io.tmpdir=/var/tmp/ 中的 slaves 高级参数中

于 2016-09-16T21:02:02.820 回答