- 論壇徽章:
- 0
|
今天遇到一個(gè)詭異的問題,咨詢公司內(nèi)部系統(tǒng)管理員各路大神,說應(yīng)該是內(nèi)核bug,最快方法是重啟OS。
由于不想換端口了再通知內(nèi)部用戶地址變化,不想直接重啟OS。
發(fā)出來麻煩大家?guī)兔纯,看有大神遇到過沒或者知道解決方法不。
現(xiàn)象:某端口顯示被占用,但查詢不到任何關(guān)于該端口的進(jìn)程
(1)啟apache服務(wù)時(shí)一直報(bào)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)擔(dān)心apache配置問題,換個(gè)Listen 端口可以正常起來
(3)用netstat -anp |grep 8001和 lsof 等查詢端口進(jìn)程的情況,都查詢不到8001端口的任何進(jìn)程。
(4)用下面簡(jiǎn)單的perl腳本測(cè)試,確認(rèn)端口確實(shí)被占用。
#!/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();
執(zhí)行結(jié)果:Socket could not be created. Reason: 地址已在使用
|
|