Chinaunix首页 | 论坛 | 博客
  • 博客访问: 595106
  • 博文数量: 248
  • 博客积分: 52
  • 博客等级: 民兵
  • 技术积分: 1028
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-23 12:05
文章分类

全部博文(248)

文章存档

2016年(7)

2013年(241)

分类: LINUX

2013-04-09 04:56:33

原文地址:CPU耗尽Xmanager惹的祸 作者:fan3838

    音碰到泛华保险的一个问题:过一段就死机,通过top看出来X程序占100%cpu,日志中有如下的报错:

Apr 22 18:12:37 oaapp02 kdm_config[26993]: Unrecognized section name [Desktop0] at /usr/share/config/kdm/kdmrc:1
Apr 22 18:12:37 oaapp02 kdm_config[26993]: Unrecognized key 'SessionTypes' in section [X-*-Greeter] at /usr/share/config/kdm/kdmrc:61
Apr 22 18:12:38 oaapp02 kdm[26984]: X server died during startup
Apr 22 18:12:38 oaapp02 kdm[26984]: X server for display :0 can't be started, session disabled
Apr 22 18:12:38 oaapp02 init: Id "x" respawning too fast: disabled for 5 minutes


    看提示是kde启动的时候报出来的,而且是很快继续执行startkde。其实看到禁止5分钟的提示我可以确定,这么频繁启动X是inittab最后以行的问题。我在虚拟机上试了一下:当启动一个图形界面,然后又init 5的时候,就会频繁出现这种提示。跟用户的现象一样。
    基本可以判定是在inittab最后一句之前,已经有X启动了。也就是说5模式的这些开机启动的服务里面,肯定有启动X的。那么和X相关的有两个:vnc和xmanager。经过测试vnc不会出现这种现象;而xmanager在知识库里面有量个启动方法,针对5.0系列有一种启动方法:

1) 修改 /etc/X11/xdm/Xaccess
将这一行
# * #any host can get a login window
去掉前面的注释,改为:
* #any host can get a login window

2) 修改 /etc/X11/xdm/xdm-config
将最后一行:
DisplayManager.requestPort: 0
加上注释,改为:
! DisplayManager.requestPort: 0

3) 修改 /etc/X11/fs/config
将最后一行:
no-listen = tcp
加上注释,改为:
# no-listen = tcp

4) 删除 xinput
# rm -f /etc/X11/xinit/xinitrc.d/xinput

5) 启动 xdm
# xdm


    这只是设置启动xmanager的方法,为了实现开机自启动,肯定是将xdm加入rc.local文件中。
    我按照上述方法,设置开机启动5模式,在rc.local里面添加xdm。重启系统,现象重现。后来用户发来的系统信息中,也可以看到其etc中的相关设置,就是按照上述方法设置的。问题出在这。
    另外说一点:采用开机5模式并在rc.local里面添加xdm的情况下,除了系统进程X占用cpu外,还有一个现象,控制台启动的xdm而不是kde,而且无法登录,并且无法alt+ctrl+f2进入其他控制台。
    解决方法如下:

vi /etc/inittab
将文件中的 id:3:initdefault: 修改成id:5:initdefault:
然后将最后一行
 x:5:respawn:/etc/X11/prefdm -nodaemon
修改为
 x:5:respawn:/usr/X11R6/bin/xdm -nodaemon


    上述的方法只是不会出现X占用CPU,可以法alt+ctrl+f2进入其他控制台,但是(我还是不得不说一个但是)界面还是XDM而不是KDE,无法登录。
    在知识库里面,还有一个开启xmanager的方法,是针对AX3的,可以借鉴

红旗Asianux server 3 Xmanager配置

1、编辑/usr/share/config/kdm/Xaccess
取消下面的行前#号注释:
# * # any host can get a login window
改为
* # any host can get a login window

2、编辑/usr/share/config/kdm/kdmrc
[xdmcp] Enable=false
修改为:
[xdmcp] Enable=true

3、编辑/etc/inittab
id:3:initdefault:
修改为:
id:5:initdefault:
如果没有重启服务器可以直接执行kdm


    其实如果非要远程登录,vncserver是一个很好的选择。我对vncserver的印象很好:根据需要可以设置vncserver服务开机启动,随时提供远程图形管理界面;也可以需要时ssh登录系统执行vncserver命令启动vncserver,不用图形管理时关闭vncserver。其实基本上linux的管理都不需要图形的,这点我肯定。
阅读(800) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~