Существует ли переменная окружения для установки временного каталога в системах на основе Debian?
У меня есть Java-апплет, который использует эту переменную environement, и он запутывается при запуске двух экземпляров одного и того же апплета.
Существует ли переменная окружения для установки временного каталога в системах на основе Debian?
У меня есть Java-апплет, который использует эту переменную environement, и он запутывается при запуске двух экземпляров одного и того же апплета.
Ответы:
Я не уверен, что Java-апплет действительно будет смотреть на переменные окружения перед его запуском, но что вы можете сделать, отредактируйте / etc / profile и добавьте следующие строки:
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
Чтобы сделать его истинным каталогом tmp (так как файлы исчезают после окончания сеанса, вам нужно отредактировать .bash_logout пользователя, а также скелет .bash_logout (/etc/skel/.bash_logout), включив в него следующее :
if [ -O $TMPDIR && -d $TMPDIR ]; then
rm -rf $TMPDIR/*
fi
Часть выхода из системы опасна, если переменная не установлена и вы вошли в систему как пользователь root! Я бы не стал добавлять это в учетную запись root или кого-либо, кто является членом группы wheel! Действуйте по своему усмотрению.
tmpwatch
команда не существует в BSD (например, OSX) версии Unix, для тех, кто хочет переносимости. У моих коробок CentOS есть это все же. :)
Файл, который вы ищете:
/etc/environment
Вы должны установить переменную TEMP следующим образом:
TEMP=/home/user/tmp
export TEMP=/home/user/tmp
В C я бы использовал вызов tmpfile () для posix-системы, что позволило бы избежать столкновения. Поэтому я хотел бы найти аналогичный вызов Java, прежде чем пытаться реализовать его сам, если вы этого еще не сделали.
java.io.File.createTempFile
. Теперь с добавлением безопасного RNG.
Java использует системное свойство java.io.tmpdir
для настройки временного каталога. Разумный JRE установит это в разумное значение, основанное на системе, если это не указано явно.
export _JAVA_OPTIONS="-Djava.io.tmpdir=<local path>"
Например:
export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"