Como posso fechar uma porta que parece ser órfã pelo Xvfb?

2

Estou executando o Xvfb em uma imagem do Amazon EC2 do FC8. Ocasionalmente, o Xvfb irá travar (incapaz no momento de descobrir o motivo da falha) e, após travar a porta TCP, parecerá órfão. Eu sou incapaz de obter um PID para matar qualquer processo que possa estar usando.

Estou começando o Xvfb com:

Xvfb :7 -screen 0 1024x768x24 &

Exemplos do que estou trabalhando estão abaixo, a porta Xvfb é (era) 6007:

# netstat -ap 
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 *:ssh                       *:*                         LISTEN      1894/sshd           
tcp        0      0 *:6007                      *:*                         LISTEN      -                   
tcp        0    352 ip-10-84-69-165.ec2.int:ssh c-71-194-253-238.hsd1:51689 ESTABLISHED 2981/0              
udp        0      0 *:bootpc                    *:*                                     1817/dhclient       
udp        0      0 *:bootpc                    *:*                                     1463/dhclient       
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path
unix  2      [ ]         DGRAM                    871    668/udevd           @/org/kernel/udev/udevd
unix  2      [ ACC ]     STREAM     LISTENING     5385   1880/dbus-daemon    /var/run/dbus/system_bus_socket
unix  6      [ ]         DGRAM                    5353   1867/rsyslogd       /dev/log
unix  2      [ ]         DGRAM                    11861  2981/0              
unix  2      [ ]         DGRAM                    5461   1974/crond          
unix  2      [ ]         DGRAM                    5451   1904/console-kit-da 
unix  3      [ ]         STREAM     CONNECTED     5438   1880/dbus-daemon    /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     5437   1904/console-kit-da 
unix  3      [ ]         STREAM     CONNECTED     5396   1880/dbus-daemon    
unix  3      [ ]         STREAM     CONNECTED     5395   1880/dbus-daemon    
unix  2      [ ]         DGRAM                    5361   1871/rklogd


# lsof -i
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
dhclient 1463 root    3u  IPv4   4704       UDP *:bootpc 
dhclient 1817 root    4u  IPv4   5173       UDP *:bootpc 
sshd     1894 root    3u  IPv4   5414       TCP *:ssh (LISTEN)
sshd     2981 root    3u  IPv4  11825       TCP ip-10-84-69-165.ec2.internal:ssh->c-71-194-253-238.hsd1.il.comcast.net:51689 (ESTABLISHED)

A tentativa de forçar a porta fechada com o iptables também não parece funcionar.

iptables -A INPUT -p tcp --dport 6007 -j DROP

Não sei como recuperar / liberar a porta. Pelo que posso dizer, essa porta permanecerá nesse estado até que a instância do EC2 seja encerrada.

Então, como posso fechar essa porta para poder reiniciar o Xvfb?

    
por Jim Fiorato 18.03.2011 / 22:27

2 respostas

1

Eu fiz mais algumas investigações do porque o Xvfb estava falhando, e havia vários pânicos do kernel no servidor para vários processos diferentes.

Unable to handle kernel paging request at virtual address

Quando este pânico do kernel ocorreu no Xvfb, nós encontramos esta situação descrita na pergunta, onde o kernel tem a porta aberta e só podemos liberar reiniciando a máquina.

Enquanto investigava o pânico do kernel, encontrei este link:

link

Como o kernel que estávamos usando (2.6.16-xenU) agora está instável em instâncias do Amazon EC2:

link

Eu mudei o kernel que estávamos usando para 2.6.21.7-2.fc8xen-ec2-v1.0 e tudo parece estar bem agora.

Isso realmente não responde à pergunta sobre como liberar a porta aberta, mas acho que com esse problema do kernel, não foi possível liberar essa porta sem uma reinicialização.

    
por 23.03.2011 / 13:04
1

fuser -kn tcp 6007 executado como root deve matar o processo que tiver a porta 6007 aberta.

    
por 19.03.2011 / 01:09