1つのLinuxボックスで異なるユーザーの下で複数のjvm(Tomcatを含む)を実行しようとしています。私はあまり多くの問題を見ていませんが、catalina.outではこれを見続けています:
May 30, 2014 1:16:16 PM org.Apache.catalina.startup.Catalina start
INFO: Server startup in 7626 ms
May 30, 2014 1:16:37 PM Java.util.prefs.FileSystemPreferences$2 run
WARNING: Could not create system preferences directory. System preferences are unusable.
May 30, 2014 1:16:55 PM Java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock System prefs. Unix error code -158097957.
May 30, 2014 1:16:55 PM Java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush system prefs: Java.util.prefs.BackingStoreException: Couldn't get file lock.
私はいくつかの掘削/読書を行い、以下を推測しました:
ルートアクセス権を持つ管理者は、システム設定ディレクトリ/etc/.Java/.systemPrefs with drwxr-xr-x access.
を作成する必要があります
Javaは/etc/.Java/.systemPrefs/.system.lock
と/etc/.Java/.systemPrefs/.systemRootModFile
を探しています
上記のファイルを手動で作成し(「touch」を使用して空のファイルを作成します)、それらを含むディレクトリを修正する必要があります。ファイルに対する権限は544
である必要があり、ディレクトリに対する権限は755
である必要があり、所有者とグループはすべてのルートです。
しかし
私はルートではありません、ルートを誰かに実行させるのは高価であり、jvmsを実行している複数のユーザーがいます、つまり、それらのファイルを作成し、すべてのユーザーがそれらの権限でアクセスできるようにアクセス許可を設定する必要がありますか?
誰かがこの問題に遭遇したことがありますか?彼らが持っている場合、私が見逃しているより簡単な解決策がありますか?
ユーザーごとにこれらの設定を設定します。
mkdir -p ~/.Java/.systemPrefs
mkdir ~/.Java/.userPrefs
chmod -R 755 ~/.Java
export Java_OPTS="-Djava.util.prefs.systemRoot=/home/user/.Java -Djava.util.prefs.userRoot=/home/user/.Java/.userPrefs"
<run appl>
ディレクトリを作成せずに、一部のJava仮想マシンのデフォルトは/etc/
。
私の考えでは、ユーザーが異なっていても、JVMは同じプロセスであるため、Tomcatを1人のユーザーとして読み取ります。おそらく必要なのは、ユーザー管理メカニズムですか?ログインとログアウト
実行中のBashプログラムの許可を755に設定して、これを修正しました
ls abc.sh
chmod 755 abc.sh