Назад | Перейти на главную страницу

Как изменить / tmp по умолчанию на / home / user / tmp

Есть ли переменная среды для установки временного каталога в системах на основе 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! Соблюдайте осторожность.

Файл, который вы ищете:

/etc/environment

Вы должны установить переменную TEMP как:

TEMP=/home/user/tmp

Если вы хотите /home/user/tmp для очистки при перезагрузке я предлагаю вам добавить @reboot работа в личное пользование crontab.

В C я бы использовал tmpfile () вызовите систему posix, которая позволила бы избежать столкновения. Поэтому я бы поискал аналогичный вызов Java, прежде чем пытаться реализовать его сам, если вы еще этого не сделали.

Java использует системное свойство java.io.tmpdir для настройки временного каталога. Разумная JRE установит это на разумное значение в зависимости от системы, если это не указано явно.

Для меня это сработало, когда я пытался установить файл jar с помощью java.

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

Я использую Red Hat Linux. /apps/prod/tmp новая папка.

https://support.oracle.com/epmos/faces/SearchDocDisplay?_adf.ctrl-state=1dab2wir99_201&_afrLoop=305930829027924#SYMPTOM

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

Например:

export _JAVA_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"