Como posso executar o Firefox no CentOS sem exibição? [fechadas]

16

Estou tentando executar o navegador GUI do Firefox no servidor CentOS decapitado para realizar alguns testes na web.

Não preciso ver a saída gráfica, porque uso a API do servidor Selenium para controlar a entrada do navegador e inspecionar a saída.

A instalação foi testada com sucesso no computador Mac desktop. No entanto, ele falha ao executar no meu servidor VPS CentOS decapitado com a seguinte mensagem "Erro: nenhuma exibição especificada". (O que faz sentido, já que é apenas um servidor em um rack em algum lugar.)

Como faço para que o Firefox funcione sem uma tela, para que o Selenium possa interagir com ele? Ou - de forma mais ampla - como as pessoas executam aplicativos somente de GUI em um servidor Linux quando não há exibição?

Notei que o Firefox tem esta opção de linha de comando:

X11 options
  --display=DISPLAY  X display to use

Infelizmente, não sei nada sobre o X11 ou é exibido no CentOS, portanto não sei o que especificar na linha de comando ou se isso ajudaria.

Eric
fonte
4
Acho muito estranho que uma pergunta que tenha sido estrelada 13 vezes seja fechada como "muito localizada".
precisa saber é o seguinte
11
Exatamente, estou tendo um problema semelhante e tanto a pergunta quanto a resposta foram benéficas para mim. Definitivamente, deve ser reaberto caso alguém encontre outra solução.
Marek Rost #

Respostas:

18

Use Xvfb. Ele fornece um servidor X que não requer conexão com um monitor físico.

(Então, no CentOS, você faria algo como "yum install xorg-x11-server-Xvfb".)

Você pode iniciá-lo na exibição ": 1" com o comando "/ path / on / which / installed / Xvfb: 1-screen 0 1024x768x24 &". Isso criará uma tela com resolução 1027x768 e profundidade 24. O uso de "&" fará com que o comando seja executado em segundo plano.

Antes de iniciar o Firefox, você precisa tornar a exibição acessível, o que é feito usando o comando Exportar - ie. "export DISPLAY =: 1", apontando para qualquer host apropriado.

cjc
fonte
Uau! Obrigado! Isso funciona-- embora eu esteja recebendo toneladas de mensagens de erro estranhas na tela. Vou postar uma nova pergunta sobre eles. Resumindo, apesar das mensagens, ele está funcionando e retornando os dados necessários. Muito obrigado, esta é apenas a ajuda que eu precisava.
Eric
A propósito, como posso "desligar" a exibição do Xvfb quando terminar tudo?
Eric
Você deve ser capaz de matar o processo. Se você quiser se sofisticar, pode procurar na configuração de scripts de início / parada (se o pacote ainda não o fornecer; pode: procurar no /etc/init.d qualquer script xvfb).
cjc
11
Entendi, obrigado. Eu publiquei uma pergunta de acompanhamento sobre as informações / mensagens de erro que estou vendo, caso você esteja procurando mais pontos de reputação :-) serverfault.com/questions/363914/…
Eric
Esta resposta está correta, mas você deve ter em mente que o exportcomando deve ser definida na mesma sessão de terminal como o terminal você vai executar o seu firefox
TuyenNTA