web-dev-qa-db-ja.com

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

Debianベースのシステムで一時ディレクトリを設定する環境変数はありますか?

その環境変数を使用するJavaアプレットがあり、同じアプレットの2つのインスタンスを起動すると混乱します。

14
Disco

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グループのメンバーである人には追加しません!慎重に進んでください。

17
TrueDuality

あなたが探しているファイルは:

/etc/environment

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

TEMP=/home/user/tmp
8
cstamas

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

2
Teddy

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

1
Kyle Brandt

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

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

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

Red Hat Linuxを使用しています。 /apps/prod/tmpは新しいフォルダです。

1
sajan

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"
0
scf617