如何改变jenkins` / tmp`目录位置?

时间:2013-03-28 06:43:55

标签: jenkins

如何更改jenkins在其从属设备中存储临时数据的位置。目前,它关闭了与我的奴隶的连接,因为它抱怨以下

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

我想将tmpdir位置移动到/var/tmp/而不是/tmp。我怎么能这样做?

10 个答案:

答案 0 :(得分:21)

只需将“-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"

答案 1 :(得分:6)

在debian / ubuntu计算机上,将以下内容添加到文件#include <functional> #include <type_traits> #include <iostream> //just form cout for demonstration class base { int number = 42; public: void a_method(void) { std::cout << number << std::endl; } }; class derived : public base { }; class another_class{ public: void a_method(void) { std::cout << 41; } }; template <class class_type,class function_type> void bind_base_method(function_type function, base& instance) { static_assert(std::is_base_of<base,class_type>::value || std::is_same<base,class_type>::value, "class_type is not derived of base or base"); static_assert(std::is_member_function_pointer<function_type>::value, "Function is not a member function"); //call like auto this_will_call_the_method = std::bind(function, instance); this_will_call_the_method(); } int main(void) { derived foo; bind_base_method<derived>(&derived::a_method, foo); another_class bar; //bind_base_method(&another_class::a_method, bar);//error won't work as wanted return 0; } 中:

/etc/default/jenkins

答案 2 :(得分:2)

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

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

或者您可以创建符号链接/var/tmp文件夹并放置主页jenkins守护程序。

答案 3 :(得分:1)

在FreeBSD上运行,您可以通过将此行添加到/etc/rc.conf来配置临时目录:

jenkins_java_opts="-Djava.io.tmpdir=/var/tmp"

答案 4 :(得分:1)

当jenkins被包裹时,例如作为Windows服务引导,将配置添加到%JENKINS_HOME%\ jenkins.xml y元素 或者在奴隶上,%JENKINS_HOME%\ jenkins-slave.xml

答案 5 :(得分:1)

与其他答案相同的信息,但CloudBees的官方支持文章在Jenkins Master上重新登记JNA错误(尽管同样适用于Jenkins Nodes):

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

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

  • -Djava.io.tmpdir=$JENKINS_HOME/tmp附加到JENKINS_JAVA_OPTIONS/etc/sysconfig/jenkins文件中的/etc/default/jenkins变量,具体取决于您的操作系统
  • 使用运行Jenkins进程的Unix用户创建/var/lib/jenkins/tmp

答案 6 :(得分:0)

在奴隶上你可以将它添加到Jenkins中的奴隶高级参数-Djava.io.tmpdir = / var / tmp /

答案 7 :(得分:0)

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

enter image description here

答案 8 :(得分:0)

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

您可以编辑此文件并在Flutter.framework标记中添加-Djava.io.tmpdir=D:\Whatever\folder\以配置临时文件夹。 例如。

<arguments>

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

答案 9 :(得分:0)

如果使用“ SSH Slaves Plugin”,则可以设置JVM Options in "Advanced settings"并添加:

-Djava.io.tmpdir=/my/temp