it-swarm.com.de

java-Systemeinstellungen unter verschiedenen Benutzern in Linux

Ich versuche, mehrere Jvms (einschließlich Tomcat) unter verschiedenen Benutzern auf einer Linux-Box auszuführen. Ich sehe nicht zu viele Probleme, aber in catalina.out sehe ich Folgendes:

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.

Ich habe etwas gegraben/gelesen und folgerte daraus:

Ein Administrator mit Root-Zugriff muss das Systemeinstellungsverzeichnis /etc/.Java/.systemPrefs with drwxr-xr-x access. erstellen.

Java sucht nach /etc/.Java/.systemPrefs/.system.lock und /etc/.Java/.systemPrefs/.systemRootModFile

Manuelles Erstellen der obigen Dateien ("touch" zum Erstellen leerer Dateien verwenden) und ihre Verzeichnisse sollten korrigiert werden. Die Rechte für die Dateien sollten 544 sein, die Rechte für ihre Verzeichnisse sollten 755 sein, Eigentümer und Gruppe sind für alle root.

Aber

Ich bin nicht root, es ist teuer, jemanden zum Ausführen von root zu veranlassen, und ich habe mehrere Benutzer, die jvms ausführen. Bedeutet das, dass ich diese Dateien erstellen und Berechtigungen einrichten muss, damit alle Benutzer Zugriff auf diese Berechtigungen haben?

Hat jemand jemals dieses Problem gefunden und wenn es eine einfachere Lösung gibt, die mir fehlt?

12
iloveretards

Legen Sie diese Einstellungen pro Benutzer fest:

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>

Einige Java Virtual Machines haben standardmäßig /etc/, ohne die Verzeichnisse zu erstellen.

Siehe auch: Java - Voreinstellungen festlegen Backingstore-Verzeichnis

23
iloveretards

Ich denke, dass die JVM trotz unterschiedlicher Benutzer Tomcat immer noch als einen Benutzer liest, da dies derselbe Prozess ist. Vielleicht benötigen Sie einen Mechanismus zur Benutzerverwaltung? Einloggen und abmelden

0
Benda

Ich habe dies behoben, indem ich die Berechtigungen meines Bash-Programms auf 755 gesetzt habe

ls abc.sh
chmod 755 abc.sh
0
bomgarato