解决 java.util.prefs.BackingStoreException 报错问题

原文出处,感谢分享


服务器日志显示,半分钟报一次错误:

Mar 29, 2016 10:37:23 AM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock User prefs.  Unix error code 2.
Mar 29, 2016 10:37:23 AM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock User prefs.  Unix error code 2.
Mar 29, 2016 10:37:23 AM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Mar 29, 2016 10:37:23 AM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush user prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Mar 29, 2016 10:37:25 AM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock System prefs. Unix error code 0.
Mar 29, 2016 10:37:25 AM java.util.prefs.FileSystemPreferences checkLockFile0ErrorCode
WARNING: Could not lock System prefs. Unix error code 0.
Mar 29, 2016 10:37:25 AM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
Mar 29, 2016 10:37:25 AM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn't flush system prefs: java.util.prefs.BackingStoreException: Couldn't get file lock.
本来无伤大雅,但是把日志都给我顶没了让我很惆怅,于是决定解决掉他,多方查询,发现造成这个问题的原因是jdk去锁定用户配置的时候无法锁定,其实就是各种权限问题,好多文章说去掉/etc/.java就可以了 我试了试 不行
看了如下两篇文章
http://www.ithao123.cn/content-10680341.html
http://www-01.ibm.com/support/docview.wss?uid=swg21515420
得到了一些启发
然后我发现需要给tomcat的登录用户赋值/etc/.java的操作权限,由于是自带的tomcat6,我打开tomcat6.conf文件后发现这么一行:
TOMCAT_USER="tomcat"
出于偷懒,果断改成root,至此,问题解决
下面才是重点

但是毕竟让tomcat拿到root权限不是什么安全的事情,如果日后集团安全检查,一定会扫出漏洞,所以把tomcat用户的权限都赋值:
# chown tomcat:tomcat -R /etc/.java/.systemPrefs
# chown tomcat:tomcat -R /etc/.java
# chown tomcat:tomcat -R /var/lock/subsys/tomcat6
# chown tomcat:tomcat -R /var/log/tomcat6
# chown tomcat:tomcat -R /var/lib/tomcat6
# chown tomcat:tomcat -R /var/cache/tomcat6
# chown tomcat:tomcat -R /etc/rc.d/init.d/tomcat6
# chown tomcat:tomcat -R /etc/logrotate.d/tomcat6
# chown tomcat:tomcat -R /etc/sysconfig/tomcat6
# chown tomcat:tomcat -R /etc/tomcat6
# chown tomcat:tomcat -R /usr/sbin/tomcat6
# chown tomcat:tomcat -R /usr/share/tomcat6
# chown tomcat:tomcat -R /usr/share/java/tomcat6
再把tomcat登录用户改回tomcat,重启,果然依旧没有问题

猜你喜欢

转载自blog.csdn.net/baidu_32739019/article/details/78405444