地址已在使用中,但在netstat或lsof中没有任何内容

pgm*_*lon 14 python linux port netstat lsof

我尝试在端口7054上启动Python SimpleHTTPServer:

$ sudo python -m SimpleHTTPServer 7054
...
socket.error: [Errno 98] Address already in use
Run Code Online (Sandbox Code Playgroud)

所以,我运行了以下命令:

$ sudo netstat -ntpu | grep 7054
$ sudo lsof -i -n -P | grep 7054
Run Code Online (Sandbox Code Playgroud)

但我没有结果.

mic*_*eph 9

netstat联机帮助页:

netstat   [address_family_options]   [--tcp|-t]   [--udp|-u]   [--raw|-w]   [--listening|-l]  [--all|-a]  [--numeric|-n]  [--numeric-hosts]  [--numeric-ports]
[--numeric-users] [--symbolic|-N] [--extend|-e[--extend|-e]] [--timers|-o] [--program|-p] [--verbose|-v] [--continuous|-c]
Run Code Online (Sandbox Code Playgroud)

我使用以下选项:

sudo netstat -tanl | grep 7054
Run Code Online (Sandbox Code Playgroud)

这是--numeric,--tcp,--all,--listening

我认为netstat显示在特定端口上侦听进程的pid所需的最小选项是-nlp.

lsof您指定的选项适合我.使用https://wiki.python.org/moin/UdpCommunication#Receiving上的示例代码和python -m SimpleHTTPServer 7054:

$ netstat -nlp | grep 7054
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:7054            0.0.0.0:*               LISTEN      20458/python    
udp        0      0 0.0.0.0:7054          0.0.0.0:*                           20498/python    
$ lsof -i -n -P | grep 7054
python    20458 michael    3u  IPv4 143736      0t0  TCP *:7054 (LISTEN)
python    20498 michael    3u  IPv4 173739      0t0  UDP *:7054 
Run Code Online (Sandbox Code Playgroud)

额外信用:坚持别名:

listening() {
    netstat -nlp | grep $1
}
Run Code Online (Sandbox Code Playgroud)

并使用它:

$ listening 7054
Run Code Online (Sandbox Code Playgroud)