Solución al error "Maximum number of clients reachedUnable to init server" en Linux

Author
By Darío Rivera
Posted on 2021-05-06 in Arch Linux

Hace unos días venia experimentando problemas con las aplicaciones de KDE Plasma en mi máquina con Arch Linux. Resulta que de vez en cuando no abría alguna aplicación, cosa bastante rara!, hasta que llegué al punto en el que solamente podía tener una aplicación abierta al tiempo porque las demás no funcionaban.

Si intentaba ejecutar una aplicación desde la terminal obtenía el siguiente error:

Maximum number of clients reachedUnable to init server: Could not connect: Connection refused
Error: cannot open display: :0

En este post te explicaré el por qué de este error y cómo solucionarlo!.

Origen

Este error es originado poque se ha excedido el número máximo de clientes del sistema de ventanas Xorg. Por lo general Xorg acepta un máximo de 256 clientes simultáneos. Una forma de verificar esto es instalar el paquete xrestop en tu distro de Linux. Al ejecutar el comando xrestop obtendremos un resultado como el siguiente:

imagen de xreston

Observa que en mi caso particular (Monitoring 252 clients), después de iniciar el sistema hay 252 clientes simultáneos de Xorg y 1 error (XErrors) que surgió al intentar iniciar firefox de manera fallida. En este punto es importante mencionar que una aplicación puede consumir más de un cliente simúltaneo!, y como sabes cada pestaña de tu navegador es un proceso independiente por lo cual abrir una nueva pestaña implica iniciar una nueva conexión a Xorg.

Solución

La solución a este inconveniente consiste en asignar más clientes a Xorg. Para esto, debes iniciar el sistema en modo consola o parar el Display Manager. En mi caso particular utilizo sddm, seguramente tu utilizarás gdm o algún otro.

systemctl stop sddm

Creo que no sobra decir que esto lo debes hacer en una tty que no sea del sistema gráfico. Puedes acceder a una pulsando CTRL+ALT+Dígito. Una vez hecho esto debes entrar al directorio de configuraciones de Xorg, en mi caso

cd /etc/X11/xorg.conf.d/

En este directorio puedes crear tus configuraciones personalizadas de Xorg nombrando tus archivos con el patrón XX-*.conf. En este caso particular, puedes crear un archivo con nombre 99-maxclients.conf en donde ingresarás el siguiente contenido:

Section "ServerFlags"
  Option "MaxClients" "512"
EndSection

Resulta que estos archivos son analizados por el servidor X al arrancar y son fusionados con el archivo principal xorg.conf. Una vez hecho esto puedes iniciar nuevamente el Display Manager y verificar que todo funciona de la manera correcta.

systemctl start sddm

Puedes incluso ejecutar nuevamente xrestop y verificar que puedes tener más de 256 conexiones a Xorg. Fantástico! Hasta la próxima!.


Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.