LinuxSir.cn,穿越时空的Linuxsir!

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

升级了gdm,kde的选项没有请问如何解决

[复制链接]
发表于 2004-5-25 16:39:47 | 显示全部楼层 |阅读模式
3x!
 楼主| 发表于 2004-5-25 21:50:48 | 显示全部楼层
问题原因:
      GDM 已经改变了存储 xsessions 的目录和文件的结构,所以以前的配置不再起作用,因此那个kde选项也自然而然的不见了。新的xsessions的目录是/usr/share/xsessions/,配置文件名为xx.desktop。
解决方法:
      在/usr/share/xsessions/下建立文件kde.desktop,文件内容如下所示

  1. [Desktop Entry]
  2. Encoding=UTF-8
  3. Name=KDE
  4. Comment=This session logs you into KDE
  5. Exec=startkde
  6. TryExec=startkde
  7. # no icon yet, only the top three are currently used
  8. Icon=
  9. Type=Application
复制代码

     改变文件的权限

  1. chmod 755 kde.desktop
复制代码

重新启动gdm看看是不是有了kde选项了。
----------------------------------------------------------------------
问题描述:
       以前是通过将gdm加入local.start的方法启动gdm的,现在升级了gdm,发现如果系统直接启动,即使按照上面的方法设置了还是看不见kde选项,但是以root身份运行gdm会出现kde选项。
问题原因:
       以前曾经怀疑是文件的权限问题,但是后来发现不是,具体原因不明。
解决方法:
       按照gentoo官方的方法启动gdm,即
       修改/etc/rc.conf,rc-update add xdm default,问题解决了。
----------------------------------------------------------------------
问题描述:
       按照官方方法启动gdm在系统关闭的时候会出现关闭服务错误。
问题原因:
       如果通过gdm的系统选项关闭系统,gdm会提前于/etc/init.d/xdm stop而关闭,系统找不到gdm进程而包错。
解决方法:
       修改/etc/init.d/xdm了

  1. stop() {
  2.         local retval=0
  3.         local curvt="$(fgconsole)"
  4.         local myexe="$(get_options "service")"
  5.         local myservice="${myexe##*/}"

  6.         ebegin "Stopping ${myservice}"
  7.         rm -f ${svcdir}/options/xdm/service

  8.         if [ "$(ps -A | grep -e "${myservice}")" ]
  9.         then
  10.              start-stop-daemon --stop --quiet \
  11.                       --exe ${myexe} &>/dev/null

  12.                 retval=$?
  13.         else
  14. [color=red]                retval=0[/color]
  15.         fi

  16.         #switch back to original vt
  17.         chvt "${curvt}" &>/dev/null
  18.         eend ${retval} "Error stopping ${myservice}."

  19.         return ${retval}
  20. }
复制代码

------------------------------------------------------------------------------------
 楼主| 发表于 2004-5-26 22:36:51 | 显示全部楼层
xiaosuo@center xsessions $ cat kde.desktop
[Desktop Entry]
Encoding=UTF-8
Name=KDE
Comment=This session logs you into KDE
Exec=startkde
TryExec=startkde
# no icon yet, only the top three are currently used
Icon=
Type=Application
xiaosuo@center xsessions $ pwd
/usr/share/xsessions
xiaosuo@center xsessions $ ll
总用量 8
-rwxr-xr-x  1 root root 2919  5月 25 16:09 gnome.desktop
-rwxr-xr-x  1 root root  187  5月 25 21:46 kde.desktop

我按照上面的样子建立了kde.desktop,但是如果我将gdm加入local.start他运行后没有kde选项,但是如果我以root从console运行gdm里面就有kde,文件的权限没有问题,请问如何解决呀!
发表于 2004-5-27 04:58:25 | 显示全部楼层
我没有在gentoo的论坛上搜过,我是自己找的答案,所以我的方法和文章里说的不一样,我是在/etc/X11/dm/Sessions/下进行的修改,至于改法,也是照葫芦画瓢,你试一试,在我的机器上是没问题的
发表于 2004-5-27 09:34:47 | 显示全部楼层
嗯,修改配置文件,
以前我装FVWM也是这样在gdm上添加菜单的,
不过记不很具体做法了.
好像是先在/etc/X11/gdm/Sessions/
添加一个kde的文件,里面大概如下:
root@gentoo Sessions # cat kde-3.2.1
#!/bin/sh
/usr/kde/3.2/bin/startkde
然后加上执行权限,后面我不记得在那个
文件中加上KDE选项了,顶....
 楼主| 发表于 2004-5-27 13:06:10 | 显示全部楼层
问题解决不要将gdm加入local.start
编辑/etc/rc.conf将xdm加入default等级
以前不用这个方法是因为每次退出都会出现gdm错误的!
发表于 2004-5-27 14:31:11 | 显示全部楼层
ft,我一直都是这样的,以为你也是这样呢。因为这样做比较符合标准,不会在升级的时候出问题。还有区域设置之类的最好在/etc/env.d下设,道理都是一样的。用了非标准的配置方法,升级的时候往往会半天都找不到问题出在哪里。
 楼主| 发表于 2004-5-27 17:45:19 | 显示全部楼层
呵呵,现在能够了,但是每次关机的时候告诉gdm,关闭错误,两个叹号十分的不爽了!干脆修改/etc/init.d/xdm了

  1. stop() {
  2.         local retval=0
  3.         local curvt="$(fgconsole)"
  4.         local myexe="$(get_options "service")"
  5.         local myservice="${myexe##*/}"

  6.         ebegin "Stopping ${myservice}"
  7.         rm -f ${svcdir}/options/xdm/service

  8.         if [ "$(ps -A | grep -e "${myservice}")" ]
  9.         then
  10.              start-stop-daemon --stop --quiet \
  11.                       --exe ${myexe} &>/dev/null

  12.                 retval=$?
  13.         else
  14. [color=red]                retval=0[/color]
  15.         fi

  16.         #switch back to original vt
  17.         chvt "${curvt}" &>/dev/null
  18.         eend ${retval} "Error stopping ${myservice}."

  19.         return ${retval}
  20. }
复制代码
发表于 2004-5-27 17:49:09 | 显示全部楼层
好贴, 我给加精!
发表于 2004-5-28 10:31:22 | 显示全部楼层
这个,好像有点治标不治本的味道万一你有什么其他的服务终止不正常就会被掩盖问题,不如干脆直接判断myservice是不是gdm,如果是gdm,就直接返回0,否则接着执行后面的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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