我遇到了一个问题,即X阻止进程创建窗口,将以下内容说进去~/.xsession-errors
:
cannot open display: :0.0
Maximum number of clients reached
到处搜索有很多面临此问题的示例,有时人们会确定他们正在运行的程序正在耗尽所有客户端插槽。参见例如 LP 70872(Firefox), LP 263211(gnome-screensaver)。
对于它的价值,我几乎总是运行gnome-terminal,thunderbird,chrome浏览器,同情心,tomboy和virtualbox,除了GNOME桌面提供的常规功能外,还偶尔运行一些其他功能。
但是,我的问题不是“哪个程序导致了此问题”,而是如何诊断该问题?
在以上(和其他)错误,论坛报告等中,建议使用许多工具:
xlsclients
-列出给定显示的客户端应用程序,但我认为这与“ X客户端”相对应xrestop
-一种顶级样式的X资源工具,每个X客户端一行。很多''客户,未显示在xlsclients
输出中xwininfo -root -children
列出X窗口对象
据我所知,问题可能根本不是太多的客户端,而是X服务器中为长期断开的客户端保留的资源。但是,您似乎也无法(轻松地?)将X资源与其客户联系起来。一旦这个问题开始发生,是否可以有效诊断该问题,或者对于我运行的唯一对我开放的应用程序,这是一种乏味的分而治之方法?
2011年1月更新:我想我已经解决了这个问题。为了使任何人都陷入困境,由于我拥有墙纸,因此鹦鹉螺和/或compiz或该软件链中的某些内容出现了段错误。我选择了一个XML文件作为墙纸,该文件定义了旋转的图像库。它是手工制作的,但是基于/usr/share/backgrounds/contest/background-1.xml或类似文件。禁用墙纸,此后我没有发生崩溃。
我尚未将此问题标记为已回答,因为实际的具体问题不是我的问题,而是如何诊断它。不幸的是,这主要是反复试验,很糟糕。
xrestop
无法启动-它还会抱怨“已达到最大客户数”!->无法打开显示。
xrestop
输出了吗?前三行告诉您什么?机器中有多少内存/视频内存?