Como alterar o padrão / tmp para / home / user / tmp


Respostas:


17

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.


3
Eu não colocaria a limpeza em .bash_logout - o que acontece se eles abrirem duas sessões e sairem de uma? Use tmpwatch. :)
MikeyB 10/10/09

Essa é uma solução de limpeza muito melhor, obrigado por adicionar isso. :)
TrueDuality 16/10/2009

Nota: o tmpwatchcomando não existe na versão BSD (por exemplo, OSX) do unix, para quem quer portabilidade. Minhas caixas do CentOS possuem. :)
Cometsong

8

O arquivo que você está procurando é:

/etc/environment

Você precisa definir a variável TEMP como:

TEMP=/home/user/tmp

2
E mesmo #export TEMP=/home/user/tmp
Fedir RYKHTIK

@ Fedir que está no shell, sim.
Cstamas 02/07/2014

2

Se você deseja /home/user/tmpser limpo na reinicialização, sugiro que você adicione um @reboottrabalho ao pessoal do usuário crontab.


1

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.


Isso pressupõe que ele é o desenvolvimento da aplicação
TrueDuality

TrueDuality: Ah, meu erro #
Kyle Brandt

1
Java tem java.io.File.createTempFile. Agora com RNG seguro adicionado.
Tom Hawtin - tackline

1

Java usa a propriedade do sistema java.io.tmpdirpara 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.


1

Para mim, isso funcionou quando eu estava tentando instalar um arquivo jar usando java.

export _JAVA_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"

Eu uso um Red Hat Linux. /apps/prod/tmpsendo a nova pasta.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.