有没有一个环境variables来设置基于debian的系统上的临时目录?
我有一个使用该环境variables的Java小应用程序,当启动同一个小应用程序的两个实例时,它变得困惑。
我不确定java applet是否会在启动之前真正查看环境variables,但是您可以编辑/ etc / profile并添加以下行:
if [[ -O /home/$USER/tmp && -d /home/$USER/tmp ]]; then TMPDIR=/home/$USER/tmp else # You may wish to remove this line, it is there in case # a user has put a file 'tmp' in there directory or a rm -rf /home/$USER/tmp 2> /dev/null mkdir -p /home/$USER/tmp TMPDIR=$(mktemp -d /home/$USER/tmp/XXXX) fi TMP=$TMPDIR TEMP=$TMPDIR export TMPDIR TMP TEMP
为了使它成为一个真正的tmp目录(如文件在会话结束时消失,您将需要编辑用户的.bash_logout以及骨架.bash_logout(/etc/skel/.bash_logout)以包含以下内容:
if [ -O $TMPDIR && -d $TMPDIR ]; then rm -rf $TMPDIR/* fi
注销部分是危险的variables没有得到设置,并以root身份login! 我不会将此添加到根帐户或轮组的成员的任何人! 谨慎行事。
您正在寻找的文件是:
/etc/environment
您必须设置TEMPvariables,如:
TEMP=/home/user/tmp
如果你想在重新启动时清理/home/user/tmp
,我build议你在用户的个人crontab
添加@reboot
作业。
在C中,我将使用tmpfile()调用posix系统,这将避免碰撞。 所以我会在尝试自己实现之前寻找类似的Java调用,如果还没有的话。
Java使用系统属性java.io.tmpdir
来configuration临时目录。 如果没有明确规定,合理的JRE将根据系统将其设置为合理的值。
对于我这个工作,当我试图安装使用Java的jar文件。
export _JAVA_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"
我使用Red Hat Linux。 /apps/prod/tmp
是新的文件夹。