XServer: como verificar quem / o que usa a exibição: N

1

Eu tenho uma situação estranha. Estes são meus comandos e suas saídas:

user@machine:~/Temp$ Xvfb :10 -screen 0 1024x768x16
_XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE) 
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 

user@machine:~/Temp$ Xvfb :11 -screen 0 1024x768x16
_XSERVTransSocketINETCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
(EE) 
Fatal server error:
(EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) 

user@machine:~/Temp$ Xvfb :12 -screen 0 1024x768x16
started...

Como você vê dipslay: 10 e exibição: 11 não são livres. No entanto, em / tmp não há arquivos .x10-lock e .x11-lock. Além disso, não há arquivos = x10 e = x11 em /tmp/.X11-unix.

Como posso descobrir por que os monitores 10 e 11 não são gratuitos?

    
por Pavel 15.02.2017 / 17:00

1 resposta

1

Você pode descobrir com

lsof -i TCP:6010

Como root, isso mostrará qualquer ouvinte TCP usando o display X11: 10; mude 6010 para 6011 para exibição: 11 e assim por diante; ou use um intervalo como TCP:6000-6020 .

Você também pode verificar se há ouvintes de soquete de arquivo, se isso também for um problema para você (você está recebendo apenas um erro para o listener INET acima, portanto, ainda não está). Por exemplo, se você executar seu Xorg com -nolisten tcp , você verá nos resultados de lsof /tmp/.X11-unix/* .

Você pode combinar os dois:

lsof -iTCP:6000-6020 /tmp/.X11-unix/*
    
por 15.02.2017 / 19:16