Адрес уже используется, но ничего в netstat или lsof

Я пытаюсь запустить Python SimpleHTTPServer на порту 7054:

$ sudo python -m SimpleHTTPServer 7054
...
socket.error: [Errno 98] Address already in use

Итак, я выполнил следующие команды:

$ sudo netstat -ntpu | grep 7054
$ sudo lsof -i -n -P | grep 7054

Но у меня нет никаких результатов.

Ответ 1

На 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]

Я использую следующие параметры:

sudo netstat -tanl | grep 7054

Это --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 

Дополнительный кредит: вставьте его в псевдоним:

listening() {
    netstat -nlp | grep $1
}

И используйте его:

$ listening 7054