Como o FireFox está sendo executado em uma máquina virtual que não possui exibição?

3

Estou usando uma máquina virtual da Red Hat, acessível apenas remotamente. No entanto, quando eu uso o comando top , um dos processos exibidos ocupando mais memória é o firefox, localizado em /usr/lib64/firefox-3.0.18/firefox .

Como esse processo poderia ser lançado sem um display, e poderia ser realmente usado por alguns processos? Existe uma maneira de verificar quais processos estão usando?

    
por Dunaril 25.10.2011 / 10:42

2 respostas

5

O Firefox precisa de um display X. Isso não precisa ser uma exibição física na máquina em que está sendo executado: pode ser uma exibição remota ou virtual.

Se você quiser saber onde ele está sendo exibido, observe a variável de ambiente DISPLAY no processo do Firefox. Note que você precisará ser root (ou mais precisamente para ter as permissões do usuário executando o processo do firefox).

</proc/$pid/environ grep -z '^DISPLAY='

Se o valor estiver no formato :NUMBER (começando com dois pontos), o servidor X será local. Haverá um soquete chamado /tmp/.X11-unix/XNUMBER , por exemplo /tmp/.X11-unix/X42 para DISPLAY=:42 . Se a exibição estiver no formato :NUMBER1.NUMBER2 , ignore a parte .NUMBER2 . Em seguida, execute lsof /tmp/.X11-unix/X42 ; Um dos processos que tem esse soquete aberto é o servidor X. É provável que seja um servidor X de framebuffer virtual como Xvfb , ou pode ser um servidor para uma estrutura de exibição remota como < a href="http://en.wikipedia.org/wiki/VNC"> VNC ou NX .

Se o valor estiver no formato host:NUMBER , o display X será remoto. O servidor X é um processo que escuta na porta 6000 + NUMBER. Execute netstat -plnt | awk '$4 ~ ":" (6000 + NUMBER) "$"' {print $7} para mostrar o PID do processo que está escutando nessa porta. É provável que seja uma conexão ssh.

    
por 26.10.2011 / 09:25
0
  1. Como o X11 é um sistema Windows que permite que o servidor de aplicativos seja usado para diferir do servidor X usado, não é necessário ter uma exibição instalada localmente.

  2. A melhor coisa seria verificar qual é o pai do firefox em execução, ou seja, verificar o PID do pai na ps output (talvez seja necessário examinar seu pai também ...). BTW: Se você tem um comando como ptree instalado, isso ajuda muito.

  3. Outra indicação seria o ID do usuário que o processo está usando.

por 25.10.2011 / 11:00