ver sierra saber puertos puerto procesos mac innecesarios high eliminar como abrir abiertos macos port

macos - sierra - ¿Cómo cierro un puerto abierto desde la terminal en la Mac?



ver procesos en mac terminal (8)

Abrí el puerto n. ° 5955 de una clase java para comunicarme desde un cliente. ¿Cómo cierro este puerto después de terminar? y también ¿qué comando puede mostrarme si el puerto está abierto o cerrado?


  1. Primero averigüe el ID de Procees (pid) que ha ocupado el puerto requerido (por ejemplo, 5434)

    ps aux | grep 5434

2. Matar ese proceso

kill -9 <pid>


  1. Averigüe la ID del proceso (PID) que está ocupando el número de puerto (p. Ej., 5955) que desea liberar

    sudo lsof -i :5955

  2. Elimina el proceso que está utilizando actualmente el puerto utilizando su PID

    sudo kill -9 PID


Cuando el programa que abrió el puerto sale, el puerto se cerrará automáticamente. Si matas el proceso de Java que ejecuta este servidor, eso debería hacerlo.


Listar archivos abiertos en un puerto y copiar PID

lsof -i :<port>

Mátalo con fuego :)

kill -9 <PID>


Para encontrar el proceso, intente:

sudo lsof -i :portNumber

Elimina el proceso que está utilizando actualmente el puerto utilizando su PID

kill PID

y luego verifique si el puerto se cerró. Si no, intente:

kill -9 PID

Solo haría lo siguiente si el anterior no funcionó

sudo kill -9 PID

Solo para estar seguros. De nuevo, dependiendo de cómo haya abierto el puerto, esto puede no importar.


Sin embargo, usted abrió el puerto, lo cierra de la misma manera. Por ejemplo, si creó un socket, lo vinculó al puerto 0.0.0.0:5955 y llamó a escuchar, cierre ese mismo socket.

También puedes matar el proceso que tiene el puerto abierto.

Si quieres saber qué proceso tiene un puerto abierto, prueba esto:

lsof -i :5955

Si desea saber si un puerto está abierto, puede hacer el mismo comando lsof (si algún proceso lo tiene abierto, está abierto, de lo contrario, no lo está), o simplemente puede tratar de conectarse a él, por ejemplo:

nc localhost 5955

Si vuelve inmediatamente sin salida, el puerto no está abierto.

Vale la pena mencionar que, técnicamente hablando, no es un puerto abierto, sino una combinación de host: puerto. Por ejemplo, si está conectado a una LAN como 10.0.1.2, puede vincular un socket a 127.0.0.1:5955 o 10.0.1.2:5955, sin que ninguno de los dos afecte al otro, o puede vincularse a 0.0.0.0 : 5955 para manejar ambos a la vez. Puede ver todas las direcciones IPv4 e IPv6 de su computadora con el comando ifconfig .


También puede usar este primer comando para matar un proceso que posee un puerto en particular:

sudo netstat -ap | grep :<port_number>

Por ejemplo, supongamos que este proceso contiene el puerto 8000 TCP y luego ejecuta el comando:

sudo netstat -ap | grep :8000

dará salida a la línea correspondiente al proceso que contiene el puerto 8000 , por ejemplo:

tcp 0 0 *:8000 *:* LISTEN 4683/procHoldingPort

En este caso, procHoldingPort es el nombre del proceso que abrió el puerto, 4683 es su pid, y 8000 (tenga en cuenta que es TCP) es el número de puerto que contiene (que desea cerrar).

Luego mata el proceso, siguiendo el ejemplo anterior:

kill 4683

Como otros mencionaron aquí, si eso no funciona (puedes intentar usar kill con -9 como argumento):

kill -9 4683

De nuevo, en general, es mejor evitar enviar SIGKILL (-9) si puede.

Aclamaciones,

Chico.


Uso lsof combinado con kill , como se mencionó anteriormente; pero escribió un pequeño script rápido para automatizar este proceso.

Con esta secuencia de comandos, puede simplemente escribir killport 3000 desde cualquier lugar, y se eliminarán todos los procesos que se ejecutan en el puerto 3000 .

https://github.com/xtrasimplicity/killport