Linux系統運行一直正常,但是圖形界面使用root賬號登錄時遇到下面錯誤,第一次遇到這么怪異的狀況
具體錯誤信息如下所示:
GConf error:Failed to contact configuration server;some possible cause are that you need to enable TCP/IP networking for ORBIT or you have stale NFSlocks due to a system crash,see http://www.gnome.org/projects/gconf/for information.(details -1:IOR file '/tmp/gconfd-root/lock/ior' not opened successfully;no gconfd located;no such file or directory2;IOR file '/tmp/gconfd-root/lock/ior' not opened successfully;no gconfd located;no such file or directory)
原因分析:
出現這個問題,有時候是因為在root賬號下執行了 chmod -R 777 /tmp,我這邊是因為chown –R oracle:oinstall /tmp誤操作所導致。官方文檔資料顯示如下所示,不過水平還沒有到那個級別,理解起來也是非常吃力:
I'm having a lock file problem. What do I do?
Usually a problem here involves either NFS, or a kernel bug.
The per-user daemon locks two files in the default configuration:
~/.gconfd/lock/ior
~/.gconf/%gconf-xml-backend.lock/ior
The first lock is to ensure that only one gconfd is running. The second lock is to ensure only one program accesses the XML config source at a time.
If you have an NFS-mounted home directory, you must be running an rpc.statd/rpc.lockd setup on both NFS client and NFS server, so that file locking works. On Red Hat Linux, this means the "nfslock" service must be running. Enable it permanently with the chkconfig tool - see its manual page. Turn it on or off at any given time with service nfslock startor service nfslock stop. You must be root to do this.
If the kernel crashes (or the power cord gets pulled) on an NFS client machine, theoretically when you reboot the client machine it will notify the NFS server that it has rebooted and all previously-held locks should be released. However, many operating systems including Red Hat Linux 7.2 do not properly do this; so you will have stale locks after a crash. If no gconfd is running, these locks may safely be removed. If gconfd is running though, DO NOT remove them; if you have two gconfd processes for a single user, bad things may happen to that user's preferences once in a while.
See also the next question.
解決方法:
登錄oracle用戶,檢查/tmp目錄,如下所示,刪除gconfd-root目錄,重啟gnome環境(重啟主機也行),問題解決。
[oracle@db-server tmp]$ ls
0igYi60r4P glibc.txt LinuxVendor_output.txt pZfW5Q9nxO tmpFileKernelParms.txt
cpuinfo.txt hs_err_pid17281.log mapping-root ssh-EOTPVp5471 virtual-root.TIjJMH
EM_TARGET_INSTALLER.lk keyring-MgIEnU orbit-root ssh-UuyYiJ3942 virtual-root.zzPdWF
gconfd-root keyring-uwsUZW pkginfo.txt swapinfo.txt
[oracle@db-server tmp]$ rm -R /tmp/gconfd-root/
[oracle@db-server tmp]$
參考資料:
http://gdcsy.blog.163.com/blog/static/127343609201061334949543/