X-Window에는 최대 클라이언트 수가 있습니까?

X-Window에는 최대 클라이언트 수가 있습니까?

X-Window에는 최대 클라이언트 수가 있습니까?

예를 들어 Windows를 사용하여 "무제한" 수의 evince 프로세스를 만들 수 있습니까? 그렇지 않은 경우 제한 사항은 무엇입니까?

Lubuntu 18.04의 또 다른 예(아래 예에서는 와인 클라이언트를 사용하지만 대답은 X 클라이언트가 와인과 관련되어 있는지 여부에 따라 달라질 수도 있고 그렇지 않을 수도 있다고 생각합니다)

 $ evince my.pdf 
Maximum number of clients reachedUnable to init server: Could not connect: Connection refused
Cannot parse arguments: Cannot open display: 

$ wine PDFXCview.exe my.pdf 
047d:fixme:ver:GetCurrentPackageId (0x32fbc4 (nil)): stub
Maximum number of clients reached047d:err:winediag:x11drv_init_thread_data x11drv: Can't open display: :0. Please ensure that your X server is running and that $DISPLAY is set correctly.

일부 창(.exe 프로그램의 창 또는 evince 창)을 닫은 후 새 창(다른 pdf 파일의 경우)을 열 수 있습니다.

.exe 프로그램을 사용하여 102개의 창을 열었고 5개의 창이 열려 있음을 보여주었습니다. X 서버에 창이 너무 많습니까? 이 문제를 어떻게 해결할 수 있나요?

최대 수량 한도를 늘릴 수 있나요? 클라이언트 수를 제한하는 일부 구성 설정이 있습니까? 어떻게 재구성할 수 있나요?

나는 읽었다https://askubuntu.com/questions/4499/how-can-i-diagnose-debug-maximum-number-of-clients-reached-x-errors그리고최대 x 클라이언트 수는 몇 개입니까?, 하지만 여전히 내 문제를 파악할 수 없습니다.

감사해요.

답변1

에서 xorg.conf(5):

SERVERFLAGS SECTION
    ...
    Option "MaxClients"  "integer"
        Set  the  maximum  number of clients allowed to connect to the X
        server.  Acceptable values are 64, 128, 256 or 512.

그리고 다음에서 Xserver(1):

-maxclients
      64|128|256|512  Set  the  maximum  number of clients allowed to
      connect to the X server.  Acceptable values are 64, 128, 256 or 512.

기본값은 256이지만 최신 버전의 X 서버에서는 2048로 늘릴 수 있습니다.

./include/misc.h:#define MAXCLIENTS       2048
./include/misc.h:#define LIMITCLIENTS   256     /* Must be a power of 2 and <= MAXCLIENTS */
./os/osinit.c:int LimitClients = LIMITCLIENTS;

NextAvailableClient()체크인 하실 수 있습니다dix/dispatch.c그리고AllocNewConnection()os/connection.c모든 세부정보를 확인하세요.


많은 Linux 배포판에서 이를 사용하여 클라이언트 제한을 512로 설정할 수 있습니다.

# printf 'Section "ServerFlags"\n\tOption "MaxClients" "512"\nEndSection\n' \
        > /etc/X11/xorg.conf.d/99-maxclients.conf

매우 큰 값을 사용하여 Xorg바이너리(실제 바이너리가 아님)를 실행하려고 하면 이 옵션에 어떤 값이 지원되는지 알 수 있습니다.Xorg.wrap-maxclients

/usr/lib/xorg/Xorg -maxclients 1000000000
...
(EE) maxclients must be one of 64, 128, 256, 512, 1024 or 2048

실제로 디스플레이에 연결된 클라이언트 수는 확장을 통해 얻을 수 있습니다 X-Resource.xrestoptopX11 클라이언트와 이들이 사용 중인 리소스를 유사한 방식으로 표시하는 응용 프로그램입니다 .

관련 정보