Is there an environment variable to set the temporary directory on debian based systems?
I have a java applet that uses that environement variable and it's getting confused when launching two instances of the same applet.
Is there an environment variable to set the temporary directory on debian based systems?
I have a java applet that uses that environement variable and it's getting confused when launching two instances of the same applet.
I am unsure if the java applet will actually look at the environment variables before it starts, but what you can do it edit /etc/profile and add the following lines:
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
To make it a true tmp directory (as in the files go away when the session is ended, you'll want to edit the user's .bash_logout as well as the skeleton .bash_logout (/etc/skel/.bash_logout) to include the following:
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
The logout portion is dangerous is the variable doesn't get set and your logged in as root! I wouldn't add this to the root account or anyone that is a member of the wheel group! Proceed at your own caution.
The file you are looking for is:
/etc/environment
You have to set the TEMP variable like:
TEMP=/home/user/tmp
If you want /home/user/tmp
to be cleaned on reboot, I suggest you add an @reboot
job to the user's personal crontab
.
export TMPDIR=/path/to/desired/tmp
Use that before running desired command.
In C, I would use the tmpfile() call for a posix system, which would avoid the collision. So I would look for a similar Java call before trying to implement it myself, if you haven't already.
Java uses the system property java.io.tmpdir
to configure the temporary directory. A reasonable JRE will set that to a sensible value based on the system if not explicitly specified.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Eg:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"