J'essaie de faire en sorte que tous les processus soient à l'écoute d'une connexion réseau sous Mac OS X. Je n'ai netstat
pas l' -p
option et j'essaie avec lsof
lsof -i -sTCP:LISTEN
me donne une bonne liste de processus d’écoute, mais pas tous. Par exemple, je peux utiliser telnet sur le port 10080 pour lequel un processus écoute une connexion, mais cela ne figure pas dans la sortie de lsof
. Qu'est-ce que je rate?
$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.
mais
$ sudo lsof -n -i | grep 10080
$
amanda
au lieu de 10080?-n
seule incidence concerne les adresses et pas les ports. Pour obtenir les numéros de port , je dois-P
aussi utiliser . Mercilsof -i -sTCP:LISTEN
, et sans le-n
et il n'a pas révélé le 10080 aussi. Donc, vous devez utiliser le-P
.Réponses:
Tous renvoient les mêmes 32 entrées (
... | wc -l
) sur mon très utilisé Lion MBP.-P -n
empêchelsof
de faire la résolution de nom, et il ne bloque pas. Si vous manquez l'un ou l'autre, cela peut être très lent.Pour UDP:
sudo lsof -iUDP -P -n | egrep -v '(127|::1)'
. Sans-n
et-P
, cela prend beaucoup de temps.Rappel: Cela n'inclut pas les paramètres du pare-feu.
la source
-P
. J'ai supposé à tort qu'il-n
s'appliquait non seulement aux adresses IP, mais également aux numéros de port.Commencez par trouver l'identifiant du processus (pid) ayant occupé le port requis (par exemple, 5434):
Tuez ce processus:
la source
ps aux
ne répertorie pas les ports utilisés par un processuskill -9
comme première option pour se débarrasser d'un processus est un choix extrême. En outre, cela ne répond pas réellement à la question, qui ne consiste pas à tuer des choses, mais à savoir ce qui se passe.