Varsayılan / tmp / / home / user / tmp olarak nasıl değiştirilir


Yanıtlar:


17

Java uygulamasının başlamadan önce ortam değişkenlerine gerçekten bakıp bakmayacağından emin değilim, ancak ne yapabileceğinizi düzenle / etc / profile ve aşağıdaki satırları ekleyin:

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

Gerçek bir tmp dizini yapmak için (oturum sona erdiğinde dosyalarda olduğu gibi, kullanıcının .bash_logout'u ve .bash_logout (/etc/skel/.bash_logout) iskeletini aşağıdakileri içerecek şekilde düzenlemek istersiniz. :

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

Çıkış kısmı tehlikeli, değişken ayarlanmıyor ve root olarak giriş yaptınız! Bunu root hesabına veya tekerlek grubunun üyesi olan hiç kimseye eklemezdim! Dikkatli olun.


3
Temizlemeyi .bash_logout'a hiç koymam - iki oturum açıp bir oturumdan çıkarlarsa ne olur? Tmpwatch kullanın. :)
MikeyB

Bu çok daha iyi bir temizleme çözümü, eklediğiniz için teşekkürler. :)
TrueDuality

Not: tmpwatchtaşınabilirlik için giden herkes için komut unix'in BSD (örn. OSX) sürümünde mevcut değildir. Benim CentOS kutularım var. :)
Cometsong

8

Aradığınız dosya:

/etc/environment

TEMP değişkenini aşağıdaki gibi ayarlamanız gerekir:

TEMP=/home/user/tmp

2
Ve hattaexport TEMP=/home/user/tmp
Fedir RYKHTIK

@ Kabuktaki fedir, evet.
cstamas

2

İsterseniz /home/user/tmpyeniden başlatma üzerinde temizlenecek, sana bir eklemenizi tavsiye @rebootkullanıcının kişisel bir işi crontab.


1

C'de, çarpışmayı önleyecek bir posix sistemi için tmpfile () çağrısını kullanırdım. Bu yüzden, daha önce yapmadıysanız, kendim uygulamaya başlamadan önce benzer bir Java çağrısı ararım.


Bu, uygulamayı geliştiren kişi olduğunu varsayar
TrueDuality

TrueDuality: Ah, benim hatam
Kyle Brandt

1
Java vardır java.io.File.createTempFile. Şimdi eklenen güvenli RNG ile.
Tom Hawtin - tackline

1

Java java.io.tmpdir, geçici dizini yapılandırmak için system özelliğini kullanır . Makul bir JRE, açıkça belirtilmezse, sistemi temel alan makul bir değere ayarlar.


1

Benim için bu java kullanarak bir kavanoz dosyası yüklemeye çalışırken çalıştı.

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

Red Hat Linux kullanıyorum. /apps/prod/tmpyeni klasör olmak.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.