Risposte:
Non sono sicuro se l'applet java guarderà effettivamente le variabili di ambiente prima che inizi, ma cosa puoi fare modifica / etc / profile e aggiungi le seguenti righe:
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
Per renderlo una vera directory tmp (come nei file scompare al termine della sessione, ti consigliamo di modificare .bash_logout dell'utente e lo scheletro .bash_logout (/etc/skel/.bash_logout) per includere quanto segue :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
La parte di logout è pericolosa se la variabile non viene impostata e il tuo login come root! Non lo aggiungerei all'account di root o a chiunque sia membro del gruppo di ruote! Procedere con la propria cautela.
tmpwatch
comando non esiste sulla versione BSD (ad es. OSX) di unix, per chiunque voglia portabilità. Le mie scatole CentOS ce l'hanno però. :)
Il file che stai cercando è:
/etc/environment
Devi impostare la variabile TEMP come:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
In C, userei la chiamata tmpfile () per un sistema posix, che eviterebbe la collisione. Quindi cercherei una chiamata Java simile prima di provare a implementarla da solo, se non l'hai già fatto.
java.io.File.createTempFile
. Ora con RNG sicuro aggiunto.
Java utilizza la proprietà di sistema java.io.tmpdir
per configurare la directory temporanea. Un JRE ragionevole lo imposterà su un valore ragionevole basato sul sistema se non esplicitamente specificato.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Per esempio:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"