Je rencontre un problème où X empêche les processus de créer des fenêtres, en disant quelque chose comme ce qui suit dans ~/.xsession-errors
:
cannot open display: :0.0
Maximum number of clients reached
En cherchant un peu, il y a beaucoup d'exemples de personnes confrontées à ce problème, et parfois les gens identifient quel programme ils exécutent qui utilise tous les emplacements des clients. Voir par exemple LP 70872 (Firefox), LP 263211 (gnome-screensaver).
Pour ce que ça vaut, j'utilise gnome-terminal, thunderbird, chromium-browser, empathy, tomboy et virtualbox presque tout le temps, en plus des éléments normaux que vous obtenez avec le bureau GNOME, et occasionnellement quelques autres morceaux.
Cependant, ma question n'est pas "quel de mes programmes cause ce problème" mais plutôt, comment peut-on diagnostiquer ce problème?
Dans les bugs, rapports de forum, etc., un certain nombre d'outils sont suggérés:
xlsclients
- liste les applications clientes pour l'affichage donné, mais je ne pense pas que cela corresponde aux 'clients X'xrestop
- un outil de ressources X de style top, une ligne par client X. Beaucoup de clients '' ne sont pas affichés dans la sortie dexlsclients
xwininfo -root -children
liste les objets de fenêtre X
D'après ce que j'ai pu comprendre, le problème pourrait ne pas être un trop grand nombre de clients, mais plutôt des ressources conservées dans le serveur X pour des clients qui se sont détachés depuis longtemps. Mais il semblerait aussi que vous ne pouvez (facilement?) relier les ressources X à leur client. Peut-on diagnostiquer efficacement ce problème une fois qu'il est survenu, ou est-ce qu'une approche laborieuse de divis et conquiers pour les applications que j'exécute est la seule voie qui s'offre à moi?
Mise à jour Janv 2011: Je pense avoir résolu ce problème. Pour le bénéfice de quiconque tomberait dessus, nautilus et/ou compiz ou quelque chose dans cette chaîne de logiciels plantait à cause d'un fond d'écran que j'avais. J'avais choisi un fichier XML comme fond d'écran, qui définissait une galerie d'images en rotation. C'était fait à la main, mais basé sur /usr/share/backgrounds/contest/background-1.xml ou similaire. Désactiver le fond d'écran et je n'ai pas eu de crash depuis.
Je ne marque pas encore cela comme résolu, car le problème spécifique réel n'était pas ma question, mais comment le diagnostiquer l'était. Malheureusement, c'était principalement un jeu de devinettes, ce qui est ennuyeux.