Como desabilitar o Xvfb usando portas TCP ao usar o pyvirtualdisplay (Python)?

3

Tentando usar pyvirtualdisplay para Python para iniciar alguns aplicativos com um terminal Xvfb X virtual. No entanto, vimos colisões de porta e gostaríamos de desativar Xvfb do uso de portas TCP. Eu li esta pergunta sobre como fazer algo muito semelhante a isso , mas eu não entendo onde esta configuração deve ser definida para isso para trabalhar com pyvirtualdisplay (ou como a configuração padrão de outra forma).

Qualquer ajuda com isso será muito apreciada. Muito obrigado!

    
por Juan Carlos Coto 02.05.2013 / 20:58

1 resposta

2

O PyVirtualDisplay invoca o programa Xvfb, mas infelizmente não fornece uma maneira de configurar os parâmetros de envio para esse programa. Se você quiser passar a opção -nolisten tcp para o Xvfb com o PyVirtualDisplay, você terá que editar o arquivo pyvirtualdisplay / xvfb.py no pacote.

Na parte inferior do arquivo, esta seção define o comando e as opções:

@property
def _cmd(self):
    cmd = [PROGRAM,
           dict(black='-br', white='-wr')[self.bgcolor],
           '-screen',
           str(self.screen),
           'x'.join(map(str, list(self.size) + [self.color_depth])),
           self.new_display_var,
           ]
    return cmd

Você precisará modificá-lo para ser algo assim:

@property
def _cmd(self):
    cmd = [PROGRAM,
           dict(black='-br', white='-wr')[self.bgcolor],
           '-screen',
           str(self.screen),
           'x'.join(map(str, list(self.size) + [self.color_depth])),
           self.new_display_var,
           '-nolisten',
           'tcp',
           ]
    return cmd
    
por 16.05.2013 / 17:26