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.
tmpwatch
Befehl 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"