|
刚装了Archlinux两天,桌面环境是GDM&Gnome,发现关机或重启时会有以下出错提示
- Stopping GDM:
- /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
找到类似下面的代码块并修改成如下这样:
- if [ "$PREVLEVEL" = "3" -o "$PREVLEVEL" = "5" ]; then
- # Shutdown daemons
- let i=${#DAEMONS[@]}
- while [ $i -ge 0 ]; do
- if [ "${DAEMONS[$i]:0:1}" != '!' -a "${DAEMONS[$i]#@}" != "gdm" ]; then
- ck_daemon ${DAEMONS[$i]#@} || /etc/rc.d/${DAEMONS[$i]#@} stop
- fi
- let i=i-1
- done
- # find any leftover daemons and shut them down in reverse order
- if [ -d /var/run/daemons ]; then
- for daemon in $(ls -1t /var/run/daemons); do
- if [ "$daemon" != "gdm" ]; then
- /etc/rc.d/$daemon stop
- fi
- done
- fi
- fi
复制代码
解决方案2:
不在rc.conf中将GDM作为daemon启动,而是换另外一种方法
sudo vi /etc/rc.conf
将daemons中的gdm删除
sudo vi /etc/inittab
将id:5:initdefault:行删除#取消注释,而将原来的id:3:initdefault:加上#注释
如下:
- ## Only one of the following two lines can be uncommented!
- # Boot to console
- #id:3:initdefault:
- # Boot to X11
- id:5:initdefault:
复制代码
将文件末的x:5:respawn:/usr/sbin/gdm -nodaemon取消注释,类似如下
- # Example lines for starting a login manager
- #x:5:respawn:/usr/bin/xdm -nodaemon
- x:5:respawn:/usr/sbin/gdm -nodaemon
- #x:5:respawn:/opt/kde/bin/kdm -nodaemon
- #x:5:respawn:/usr/bin/slim >& /dev/null
复制代码 |
|