Respostas:
Não tenho certeza se o applet java realmente analisará as variáveis de ambiente antes de iniciar, mas o que você pode fazer é editar / etc / profile e adicionar as seguintes linhas:
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
Para torná-lo um diretório tmp verdadeiro (como nos arquivos desaparecem quando a sessão termina, convém editar o .bash_logout do usuário e o esqueleto .bash_logout (/etc/skel/.bash_logout) para incluir o seguinte :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
A parte do logout é perigosa, a variável não é definida e o seu logon como root! Eu não adicionaria isso à conta raiz ou a qualquer um que seja membro do grupo wheel! Prossiga com seu próprio cuidado.
tmpwatch
comando não existe na versão BSD (por exemplo, OSX) do unix, para quem quer portabilidade. Minhas caixas do CentOS possuem. :)
O arquivo que você está procurando é:
/etc/environment
Você precisa definir a variável TEMP como:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
Se você deseja /home/user/tmp
ser limpo na reinicialização, sugiro que você adicione um @reboot
trabalho ao pessoal do usuário crontab
.
Em C, eu usaria a chamada tmpfile () para um sistema posix, o que evitaria a colisão. Então, eu procuraria uma chamada Java semelhante antes de tentar implementá-la, se você ainda não o fez.
java.io.File.createTempFile
. Agora com RNG seguro adicionado.
Java usa a propriedade do sistema java.io.tmpdir
para configurar o diretório temporário. Um JRE razoável definirá esse valor para um valor razoável com base no sistema, se não for especificado explicitamente.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Por exemplo:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"