LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2690|回复: 3

关机或重启时GDM 出错/var/run/gdm.pid doesn't exist perhaps GDM isnt running?

[复制链接]
发表于 2008-3-4 09:17:14 | 显示全部楼层 |阅读模式
刚装了Archlinux两天,桌面环境是GDM&Gnome,发现关机或重启时会有以下出错提示

  1. Stopping GDM:
  2. /var/run/gdm.pid doesn't exist perhaps GDM isnt running?
复制代码

──────────────────────────────────

经过搜索,大概了解了出错是原因是关机时GDM首先把自己kill掉,再去关闭daemons,如果在/etc/rc.conf中把GDM作为一个daemon来启应用的话,就会因找不到这个daemon的运行而出错

这是网上某牛说的
“原因是使用 gdm 關機時, gdm 會把自己先關掉, 再做 init 6 或 init 0 的程序, 到了 init [06] 的時候, 系統還以為 "/etc/init.d/xdm" 所啟動的 dm 還開著, 所以想要 stop 它, 錯誤就出來了; kdm 不會, kdm 會乖乖的等 init.d/xdm 來關掉它.”

这个问题由来已久了,从网上查到的信息,至少在2004年前就是这样
这个问题已经报告bug了,但一直没解决http://bugs.archlinux.org/task/8125

──────────────────────────────────

解决方案1:
修改/etc/rc.shutdown文件,使其在搜索要关闭的daemon时,忽略gdm(因为gmd早就自己kill了)

sudo vi /etc/rc.shutdown或用sudo gedit /etc/rc.shutdown

找到类似下面的代码块并修改成如下这样:


  1. if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
  2.         # Shutdown daemons
  3.         let i=${#DAEMONS[@]}
  4.         while [ $i -ge 0 ]; do
  5.                 if [ "${DAEMONS[$i]:0:1}" != '!' -a "${DAEMONS[$i]#@}" != "gdm" ]; then
  6.                         ck_daemon ${DAEMONS[$i]#@} || /etc/rc.d/${DAEMONS[$i]#@} stop
  7.                 fi
  8.                 let i=i-1
  9.         done
  10.         # find any leftover daemons and shut them down in reverse order
  11.         if [ -d /var/run/daemons ]; then
  12.                 for daemon in $(ls -1t /var/run/daemons); do
  13.                                 if [ "$daemon" != "gdm" ]; then
  14.                                                                 /etc/rc.d/$daemon stop
  15.                                 fi
  16.                 done
  17.         fi
  18. fi
复制代码



解决方案2:
不在rc.conf中将GDM作为daemon启动,而是换另外一种方法

sudo vi /etc/rc.conf
将daemons中的gdm删除

sudo vi /etc/inittab
将id:5:initdefault:行删除#取消注释,而将原来的id:3:initdefault:加上#注释
如下:


  1. ## Only one of the following two lines can be uncommented!
  2. # Boot to console
  3. #id:3:initdefault:
  4. # Boot to X11
  5. id:5:initdefault:
复制代码



将文件末的x:5:respawn:/usr/sbin/gdm -nodaemon取消注释,类似如下


  1. # Example lines for starting a login manager
  2. #x:5:respawn:/usr/bin/xdm -nodaemon
  3. x:5:respawn:/usr/sbin/gdm -nodaemon
  4. #x:5:respawn:/opt/kde/bin/kdm -nodaemon
  5. #x:5:respawn:/usr/bin/slim >& /dev/null
复制代码
发表于 2008-3-4 09:27:53 | 显示全部楼层
嗯,不错。其实这个问题不去理他也行,呵呵。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-4 09:33:03 | 显示全部楼层
Post by wd_afei;1822803
嗯,不错。其实这个问题不去理他也行,呵呵。


看红字FAIL难受,这样心里舒服点
回复 支持 反对

使用道具 举报

发表于 2008-3-4 10:40:11 | 显示全部楼层
gdm? 自从N个月前遇到gdm的问题后就把它干掉了,一直以来都是startx
收藏之
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表