Debianベースのシステムで一時ディレクトリを設定する環境変数はありますか?
その環境変数を使用するJavaアプレットがあり、同じアプレットの2つのインスタンスを起動すると混乱します。
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では、posixシステムに tmpfile() 呼び出しを使用して、衝突を回避します。したがって、まだ実装していない場合は、自分で実装する前に、似たようなJava呼び出しを探します。
Javaは、システムプロパティJava.io.tmpdir
を使用して一時ディレクトリを構成します。適切なJREは、明示的に指定されていない場合、システムに基づいて適切な値に設定します。
私にとってこれは、Javaを使用してjarファイルをインストールしようとしたときに機能しました。
export _Java_OPTIONS="-Djava.io.tmpdir=/apps/prod/tmp"
Red Hat Linuxを使用しています。 /apps/prod/tmp
は新しいフォルダです。
export _Java_OPTIONS="-Djava.io.tmpdir=<local path>"
例えば:
export _Java_OPTIONS="-Djava.io.tmpdir=/home/user/tmp"