Estevão Dias

1 min de leitura

lsof: descobrir qual processo está usando uma porta

Estevão Dias

lsof é um comando muito útil. Ele me ajuda principalmente quando preciso subir uma aplicação, depois de longos debugs, mas já tem algum processo usando a porta que eu preciso.

Nem sempre numa IDE fazendo várias coisas sob o capô esse é um clean up muito limpo de fazer. Então, quando preciso eu uso o lsof para descobrir qual processo está usando determinada porta.

Terminal window
lsof -i :5432
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
ssh 26118 XXXX 17u IPv4 0x50505...1162a52e 0t0 TCP *:postgresql (LISTEN)

Nesse caso é o processo com PID 26118 que está segurando a porta 5432. Aí saco o kill do coldre para resolver o problema:

Terminal window
kill 26118

Pew! E com sorte não preciso reiniciar a máquina depois disso.

lsof vem de “list open files”. Mas por algum motivo “lofi” me ajuda mais a lembrar do nome dele. O nome tem a ver com a ideia de que no Linux praticamente tudo pode ser tratado como um file descriptor, inclusive sockets de rede. Por isso um comando que originalmente serve para descobrir quais arquivos um processo está usando também consegue te dizer quem está ocupando uma porta TCP.