Gibt es eine Umgebungsvariable, um das temporäre Verzeichnis auf Debian-basierten Systemen festzulegen?
Ich habe ein Java-Applet, das diese Umgebungsvariable verwendet, und es wird verwirrt, wenn zwei Instanzen desselben Applets gestartet werden.
Gibt es eine Umgebungsvariable, um das temporäre Verzeichnis auf Debian-basierten Systemen festzulegen?
Ich habe ein Java-Applet, das diese Umgebungsvariable verwendet, und es wird verwirrt, wenn zwei Instanzen desselben Applets gestartet werden.
Antworten:
Ich bin nicht sicher, ob das Java-Applet tatsächlich die Umgebungsvariablen überprüft, bevor es gestartet wird, aber was Sie tun können, bearbeiten Sie / etc / profile und fügen Sie die folgenden Zeilen hinzu:
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
Um daraus ein echtes tmp-Verzeichnis zu machen (da die Dateien nach Beendigung der Sitzung nicht mehr angezeigt werden), müssen Sie das .bash_logout des Benutzers sowie das .bash_logout-Gerüst (/etc/skel/.bash_logout) so bearbeiten, dass es Folgendes enthält :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
Der Logout-Teil ist gefährlich, da die Variable nicht gesetzt wird und Sie als root angemeldet sind! Ich würde das nicht zum Root-Account hinzufügen oder jemandem, der Mitglied der Wheel-Gruppe ist! Fahren Sie nach eigenem Ermessen fort.
tmpwatchBefehl existiert nicht in der BSD-Version (zB OSX) von Unix, für alle, die Portabilität anstreben. Meine CentOS-Boxen haben es allerdings. :)
Die Datei, die Sie suchen, ist:
/etc/environment
Sie müssen die TEMP-Variable wie folgt einstellen:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
In C würde ich den Aufruf tmpfile () für ein Posix-System verwenden, um die Kollision zu vermeiden. Daher würde ich nach einem ähnlichen Java-Aufruf suchen, bevor ich ihn selbst implementiere, falls Sie dies noch nicht getan haben.
java.io.File.createTempFile. Jetzt mit zusätzlichem sicheren RNG.
Java verwendet die Systemeigenschaft java.io.tmpdir, um das temporäre Verzeichnis zu konfigurieren. Eine vernünftige JRE setzt dies auf einen sinnvollen Wert basierend auf dem System, wenn dies nicht explizit angegeben wird.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Z.B:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"