Inicio·Comandos de terminal

lsof

Procesos y sistema

Uso

lsof -i :<port>

Lista cada archivo y socket abierto, y asi responde a "quien tiene el puerto 3000"; sin sudo solo ves tus procesos, por lo que un resultado vacio no significa que el puerto este libre.

Opciones habituales

OpciónSignificado
-i :3000Which process holds port 3000, in either direction.
-i TCP -sTCP:LISTENListening TCP sockets only.
-tPrint bare PIDs, made for piping into kill.
-p <pid>Everything one process has open.
-u <user>One user's open files.
+D <dir>Every open file underneath a directory, recursively.
-n -PSkip host and port name lookups, which makes it much faster.

Ejemplos

lsof -i :3000

The classic answer to "something is already using port 3000".

kill -9 $(lsof -ti :3000)

Kill whatever holds that port.

sudo lsof +D /var/log

Find the process keeping a deleted log file open.

Qué se está ejecutando y qué se come la máquina. Identificarlo va antes de matarlo.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q. ¿Qué hace lsof?

Lista cada archivo y socket abierto, y asi responde a "quien tiene el puerto 3000"; sin sudo solo ves tus procesos, por lo que un resultado vacio no significa que el puerto este libre.

Q. ¿Cómo se escribe?

lsof -i :<port> — los corchetes marcan lo que puedes omitir.

Q. ¿Cuántas opciones vale la pena saber?

Aquí van 7; la lista completa está en man lsof. Este comando está en Procesos y sistema.

Comandos relacionados

página man: man lsof