Jak zmienić domyślny / tmp na / home / user / tmp


Odpowiedzi:


17

Nie jestem pewien, czy aplet java rzeczywiście spojrzy na zmienne środowiskowe przed jego uruchomieniem, ale co możesz zrobić, edytuj / etc / profile i dodaj następujące wiersze:

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

Aby stał się prawdziwym katalogiem tmp (jak w plikach znikają po zakończeniu sesji, będziesz musiał edytować .bash_logout użytkownika oraz szkielet .bash_logout (/etc/skel/.bash_logout), aby uwzględnić następujące :

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

Wylogowanie jest niebezpieczne, ponieważ zmienna nie zostanie ustawiona, a użytkownik zalogowany jako root! Nie dodałbym tego do konta root ani nikogo, kto jest członkiem grupy kół! Postępuj zgodnie z własną ostrożnością.


3
W ogóle nie umieściłem czyszczenia w .bash_logout - co się stanie, jeśli otworzą dwie sesje i wylogują się z jednej? Użyj tmpwatch. :)
MikeyB,

To znacznie lepsze rozwiązanie do czyszczenia, dzięki za dodanie tego. :)
TrueDuality,

Uwaga: tmpwatchpolecenie nie istnieje w wersji uniksowej BSD (np. OSX) dla każdego, kto wybiera przenośność. Moje pudełka CentOS mają to. :)
Cometsong

8

Plik, którego szukasz to:

/etc/environment

Musisz ustawić zmienną TEMP w następujący sposób:

TEMP=/home/user/tmp

2
A nawetexport TEMP=/home/user/tmp
Fedir RYKHTIK

@Fedir, który jest w powłoce, tak.
cstamas

2

Jeśli chcesz /home/user/tmpzostać wyczyszczony przy ponownym uruchomieniu, sugeruję dodanie @rebootzadania do osobistego użytkownika crontab.



1

Java używa właściwości systemowej java.io.tmpdirdo skonfigurowania katalogu tymczasowego. Rozsądne środowisko JRE ustawi wartość rozsądną na podstawie systemu, jeśli nie zostanie to wyraźnie określone.


1

Dla mnie to zadziałało, gdy próbowałem zainstalować plik jar za pomocą Java.

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

Używam Red Hat Linux. /apps/prod/tmpbędący nowym folderem.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.