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.
lsof -i :5432COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEssh 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:
kill 26118Pew! 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.