Estou tentando fazer com que todos os processos atinjam uma conexão de rede no Mac OS X. netstat
não tem a -p
opção e estou tentando com lsof
lsof -i -sTCP:LISTEN
me dá uma lista justa de processos de escuta, mas não todos. Posso, por exemplo, telnet para a porta 10080, onde tenho um processo ouvindo uma conexão, mas isso não é mostrado na saída de lsof
. o que estou perdendo?
$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.
mas
$ sudo lsof -n -i | grep 10080
$
amanda
vez de 10080?-n
único afeta endereços e não portas. Para obter números de porta , também tenho que usar-P
. Graçaslsof -i -sTCP:LISTEN
, e sem o-n
e não revelou o 10080 também. Então você tem que usar o-P
.Respostas:
Todos retornam as mesmas 32 entradas (
... | wc -l
) no meu MBP do Lion, muito usado.-P -n
impedelsof
a resolução de nomes e não bloqueia. Na falta de um desses, pode ser muito lento.Para UDP:
sudo lsof -iUDP -P -n | egrep -v '(127|::1)'
. Sem-n
e-P
, leva muito tempo.Lembrete: isso não inclui configurações de firewall.
fonte
-P
. Eu assumi erradamente que se-n
aplicava não apenas aos IPs, mas também aos números de porta.Primeiro, encontre o ID do processo (pid) que ocupou a porta necessária (por exemplo, 5434):
Mate esse processo:
fonte
ps aux
não lista as portas que um processo está usando #kill -9
como primeira opção para se livrar de um processo é uma escolha extrema. Além disso, isso realmente não responde à pergunta, que não é sobre matar coisas, mas descobrir o que está acontecendo.