- 论坛徽章:
- 0
|
今天遇到一个诡异的问题,咨询公司内部系统管理员各路大神,说应该是内核bug,最快方法是重启OS。
由于不想换端口了再通知内部用户地址变化,不想直接重启OS。
发出来麻烦大家帮忙看看,看有大神遇到过没或者知道解决方法不。
现象:某端口显示被占用,但查询不到任何关于该端口的进程
(1)启apache服务时一直报8001端口被占用。
(9 Address already in use: make_sock: could not bind to address [::]:8001
(9 Address already in use: make_sock: could not bind to address 0.0.0.0:8001
no listening sockets available, shutting down
Unable to open logs
(2)担心apache配置问题,换个Listen 端口可以正常起来
(3)用netstat -anp |grep 8001和 lsof 等查询端口进程的情况,都查询不到8001端口的任何进程。
(4)用下面简单的perl脚本测试,确认端口确实被占用。
#!/usr/bin/perl -w
use IO::Socket;
use IO::File;
sub main(){
my $s;
my $sock = IO::Socket::INET->new(
LocalPort => 8001,
Type => SOCK_STREAM,
Listen => 10) or die($!);
while ( $s = $sock->accept())
{
print "OK";
}
}
main();
执行结果:Socket could not be created. Reason: 地址已在使用
|
|