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