it-swarm.com.ru

системные настройки Java под разных пользователей в Linux

Я пытаюсь запустить несколько JVMS (в том числе Tomcat) под разными пользователями на одной коробке Linux. Я не вижу много проблем, но в 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.

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

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

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

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

Но

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

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

12
iloveretards

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

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 - Настройка предпочтений каталога резервного копирования

23
iloveretards

Я думаю, что, хотя у вас есть разные пользователи, JVM по-прежнему читает Tomcat как один пользователь, поскольку это один и тот же процесс. Возможно, вам нужен механизм управления пользователями? Войти и выйти

0
Benda

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

ls abc.sh
chmod 755 abc.sh
0
bomgarato