デフォルトの/ tmpを/ home / user / tmpに変更する方法


回答:


17

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グループのメンバーである誰にも追加しません!ご自身の注意に進んでください。


3
私はクリーンアップを.bash_logoutにまったく入れません-2つのセッションを開いて1つのセッションからログアウトするとどうなりますか?tmpwatchを使用します。:)
MikeyB

それを追加してくれてありがとう。:)
TrueDuality

注意:このtmpwatchコマンドは、移植性を求める人のために、UnixのBSD(OSXなど)バージョンには存在しません。私のCentOSボックスにはそれがあります。:)
Cometsong

8

探しているファイルは次のとおりです。

/etc/environment

次のようにTEMP変数を設定する必要があります。

TEMP=/home/user/tmp

2
そしてさらにexport TEMP=/home/user/tmp
Fedir RYKHTIK 14年

はい、シェル内にある@Fedir。
cstamas 14

2

/home/user/tmp再起動時にクリーンアップする場合は@reboot、ユーザーの個人にジョブを追加することをお勧めしますcrontab


1

Cでは、衝突を回避するposixシステムに対してtmpfile()呼び出しを使用します。したがって、まだ実装していない場合は、自分で実装する前に、同様のJava呼び出しを探します。


これは彼がアプリケーションを開発1であると想定
TrueDuality

TrueDuality:ああ、私の間違い
カイルブラント

1
Javaは持っていjava.io.File.createTempFileます。安全なRNGが追加されました。
トムホーティン-タックライン

1

Javaはシステムプロパティjava.io.tmpdirを使用して一時ディレクトリを構成します。適切なJREは、明示的に指定されていない場合、システムに基づいて適切な値に設定します。


1

私にとっては、Javaを使用してjarファイルをインストールしようとしたときに機能しました。

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

Red Hat Linuxを使用しています。/apps/prod/tmp新しいフォルダーであること。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.