web-dev-qa-db-fra.com

Comment changer par défaut / TMP sur / home / utilisateur / TMP

Existe-t-il une variable d'environnement pour définir le répertoire temporaire sur les systèmes basés sur Debian?

J'ai un Java applet utilisant cette variable d'environnement et qu'il est confus lors du lancement de deux instances de la même applet.

14
Disco

Je ne sais pas si le Java Applet examinera réellement les variables d'environnement avant qu'il ne commence, mais ce que vous pouvez le faire édition/etc/profil et ajouter les lignes suivantes:

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

Pour en faire un vrai répertoire TMP (comme dans les fichiers disparaît lorsque la session est terminée, vous souhaitez modifier l'utilisateur .bash_logout ainsi que le squelette .bash_logout (/etc/skel/.bash_logout) pour inclure les éléments suivants. :

if [ -O $TMPDIR && -d $TMPDIR ]; then
        rm -rf $TMPDIR/*
fi

La partie de déconnexion est dangereuse est la variable ne se déroule pas et votre connectée en tant que root! Je n'en ajouterais pas cela au compte root ou à quiconque est membre du groupe de roues! Procéder à votre propre prudence.

17
TrueDuality

Le fichier que vous recherchez est:

/etc/environment

Vous devez définir la variable TEMP comme suit:

TEMP=/home/user/tmp
8
cstamas

Si tu veux /home/user/tmp Pour être nettoyé sur Redémarrage, je vous suggère d'ajouter un @reboot Travail au personnel de l'utilisateur crontab.

2
Teddy

Dans C, j'utiliserais le TMPFile () Appel d'un système POSIX, qui éviterait la collision. Je chercherais donc un exemple similaire Java appel avant d'essayer de le mettre en œuvre moi-même, si vous ne l'avez pas déjà fait.

1
Kyle Brandt

Java utilise la propriété système Java.io.tmpdir Pour configurer le répertoire temporaire. Un JRE raisonnable définira cela à une valeur raisonnable basée sur le système s'il n'est pas explicitement spécifié.

1

Pour moi, cela a fonctionné lorsque j'essayais d'installer un fichier JAR à l'aide de Java.

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

J'utilise un rouge chapeau Linux. /apps/prod/tmp étant le nouveau dossier.

1
sajan

https://support.oracle.com/epmos/faces/searchdocdisplay?_adf.ctrl-state=1dab2wir99_201&_afrloop=305930829027924#symptom

export _Java_OPTIONS="-Djava.io.tmpdir=<local path>"

Par exemple:

export _Java_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"
0
scf617