我在FC8 Amazon EC2映像上运行Xvfb。 有时Xvfb会崩溃(目前无法找出崩溃的原因),并在崩溃后,TCP端口将显示为孤儿。 我无法获得一个PID来杀死任何可能正在使用它的进程。
我开始使用Xvfb:
Xvfb :7 -screen 0 1024x768x24 &
我正在使用的例子如下,Xvfb端口是(是)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)
试图用iptables强制端口closures似乎也没有工作。
iptables -A INPUT -p tcp --dport 6007 -j DROP
我不知道如何收回/解放港口。 据我所知,这个端口将保持这个状态,直到EC2实例closures。
那么,如何closures这个端口,以便我可以重新启动Xvfb?
fuser -kn tcp 6007
以root fuser -kn tcp 6007
运行应该fuser -kn tcp 6007
任何有6007端口打开的进程。
我做了一些更多的调查,为什么Xvfb失败,并有几个内核在服务器上的几个不同的进程恐慌。
Unable to handle kernel paging request at virtual address
当Xvfb发生内核恐慌时,我们会发现这个问题中描述的情况,内核的端口是打开的,我们只能通过重新启动机器来释放。
当我调查内核恐慌时,我遇到了这个链接:
http://drija.com/linux/72417/network-port-open-but-no-process-attached/
事实certificate,我们使用的内核(2.6.16-xenU)现在在Amazon EC2实例上不稳定:
http://www.vincestross.com/2009/04/upgrade-an-ec2-instance/
我改变了我们使用的2.6.21.7-2.fc8xen-ec2-v1.0的内核,现在看起来一切正常。
这并没有真正回答关于如何释放开放端口的问题,但是我认为在这个内核问题下,不能在没有重新启动的情况下释放该端口。