java системные предпочтения у разных пользователей в Linux

Я пытаюсь запустить несколько jvms (включая tomcat) у разных пользователей в одном Linux-окне. Я не вижу слишком много проблем, но в каталинии. Я все время вижу это:

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.

Я сделал некоторые копания/чтение и вывел следующее:

Администратор с правами доступа root должен создать каталог системных настроек /etc/.java/.systemPrefs with drwxr-xr-x access.

Java ищет /etc/.java/.systemPrefs/.system.lock и /etc/.java/.systemPrefs/.systemRootModFile

Вручную создайте вышеуказанные файлы (используйте "touch" для создания пустых файлов), и их содержащие каталоги должны исправить. Права на файлы должны быть 544, права на их каталоги должны быть 755, владелец и группа являются root для всех.

Но

Я не root, заставить кого-то запускать root дорого, и у меня есть несколько пользователей, работающих с jvms, значит ли это, что я должен создавать эти файлы и настраивать разрешения только для того, чтобы все пользователи имели доступ с этими привилегиями?

Кто-нибудь когда-нибудь сталкивался с этой проблемой, и если у них есть более простое решение, которое мне не хватает?

Ответы

Ответ 1

Установите эти настройки для каждого пользователя:

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/.

См. Также: Java - Настройка справочного каталога настроек

Ответ 2

Мое мышление состоит в том, что, хотя у вас разные пользователи, JVM все еще читает tomcat как один пользователь, так как тот же процесс. Возможно, вам нужен механизм управления пользователями? Вход и выход

Ответ 3

Я исправил это, установив права доступа моей программы Bash к 755

ls abc.sh
chmod 755 abc.sh