如何更改jenkins在其从属设备中存储临时数据的位置。目前,它关闭了与我的奴隶的连接,因为它抱怨以下
Disk space is too low. Only 0.119GB left on /tmp.
我想将tmpdir位置移动到/var/tmp/
而不是/tmp
。我怎么能这样做?
答案 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
变量,具体取决于您的操作系统/var/lib/jenkins/tmp
答案 6 :(得分:0)
在奴隶上你可以将它添加到Jenkins中的奴隶高级参数-Djava.io.tmpdir = / var / tmp /
答案 7 :(得分:0)
答案 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