linux中不同用户下的java系统首选项
我试图在一个linux机器上的不同用户下运行多个JVM(包括tomcat)。我没有看到太多的问题,但在卡塔琳娜,我一直看到:linux中不同用户下的java系统首选项,java,linux,tomcat,permissions,root,Java,Linux,Tomcat,Permissions,Root,我试图在一个linux机器上的不同用户下运行多个JVM(包括tomcat)。我没有看到太多的问题,但在卡塔琳娜,我一直看到: 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 c
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访问权限的管理员必须使用drwxr-xr-x访问权限创建系统首选项目录/etc/.java/.systemPrefs。
Java正在寻找/etc/.Java/.systemPrefs/.system.lock
和/etc/.Java/.systemPrefs/.systemRootModFile
手动创建上述文件(使用“touch”创建空文件)及其包含目录应修复。文件的权限应为544
,其目录的权限应为755
,所有者和组均为root用户
但是
我不是root,让某人运行root非常昂贵,而且我有多个用户运行JVM,这是否意味着我必须创建这些文件并设置权限,以便所有用户都可以使用这些权限进行访问
有没有人遇到过这个问题,如果他们有,我缺少的是一个更简单的解决方案?我的想法是,即使您有不同的用户,JVM仍然将tomcat作为一个用户读取,因为它是同一个过程。也许你需要的是一个用户管理机制?登录和注销为每个用户设置以下设置:
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>
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”
在不创建目录的情况下,一些Java虚拟机默认为/etc/
另请参见:我通过将执行的Bash程序的权限设置为755修复了此问题
ls abc.sh
chmod 755 abc.sh
只需授予/etc/.java完全权限即可
chmod -R 777 /etc/.java/
或
sudo chmod -R 777 /etc/.java/