Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
As vezes temos alguma aplicação web bloqueando uma porta no nosso sistema operacional, pessoas inexperientes podem achar que a única solução é reiniciar o sistema, mas ao invés disso você pode simplesmente desbloquear a porta TCP.
Isso pode acontecer muito com programadores quando estão desenvolvendo alguma aplicação web, ou quando estão testando, se a aplicação por algum motivo se comportar de uma forma inesperada, pode acabar bloqueando a porta em que ela estava executando.
Quando você precisa recorrer a isso e está usando o sistema operacional Windows, recorremos ao gerenciador de tarefas, para tentar parar esse processo, mas e quando estamos usando Linux? Alguns usuários que tem pouca afinidade com esse sistema operacional pode ter dificuldades.
Sabendo disso criamos um tutorial simples que vai te ajudar a resolver esse problema, com alguns poucos comandos no terminal vai conseguir parar a execução dessa aplicação e deixar a porta disponível novamente para que sua aplicação seja reiniciada.
Para listar todas as aplicações sendo executada em sua maquina, pode utilizar esse comando abaixo.
lsof -w -n -i
TerminalComo saída no nosso terminal é exibido as informações das aplicações em execução no momento, segue o exemplo.
lsof -w -n -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
code 7524 artefatox 109u IPv4 55488 0t0 TCP 127.0.0.1:34725 (LISTEN)
java 27512 artefatox 38u IPv6 96664 0t0 TCP 192.168.0.25:56314->198.41.30.198:https (CLOSE_WAIT)
firefox 170202 artefatox 43u IPv4 1522092 0t0 TCP 192.168.0.25:57118->35.163.49.154:https (ESTABLISHED)
chrome 341888 artefatox 187u IPv4 1492826 0t0 UDP 224.0.0.251:mdns
TerminalNo nosso exemplo aparece um lista bem curta de algumas aplicações em execução, mas quando você fizer esse comando será uma lista bem maior e com isso temos um problema, achar a aplicação que estamos procurando, não queremos interromper a aplicação errada correndo o risco de perder alguma informação.
Para não correr esse risco podemos executar o mesmo comando, mas filtrando para que nos mostre somente a aplicação que estamos procurando, garantindo que vamos parar o funcionamento da aplicação correta.
Para filtrar nas aplicações em execução, a maneira mais fácil nesse cenário é através da porta tcp, somente uma aplicação pode alocar essa porta por vez, e outros filtros como o usuário ou o comando pode trazer inúmeros resultados que é o que não queremos.
Para filtrar usando a porta tcp o nosso comando fica assim:
lsof -w -n -i tcp:<porta>
TerminalSubstituindo <porta> pelo valor da porque está buscando ele irá mostrar a aplicação que está alocando a porta TCP, para o exemplo de uma aplicação em Java que geralmente utilizamos a porta 8080, nosso comando ficaria assim:
lsof -w -n -i tcp:8080
TerminalComo exemplo de saída teremos uma informação parecida com essa:
lsof -w -n -i tcp:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 319619 artefatox 41u IPv6 1407248 0t0 TCP *:http-alt (LISTEN)
TerminalAgora com o filtro facilmente encontramos a aplicação que está bloqueando a porta, note que é nos mostrado várias informações como o comando, o usuário que está executando essa aplicação, mas a informação mais importante é o PID ele é o identificador da execução da aplicação, é com essa informação que vamos conseguir parar a aplicação em execução, copie o PID, pois vamos utilizá-lo no próximo comando onde vamos parar a aplicação.
kill -9 <pid>
TerminalAplicando ao nosso exemplo o comando ficaria assim:
kill -9 319619
TerminalApós a execução do comando, a aplicação em execução travando a porta será removida desbloqueando a porta e permitindo a execução da sua aplicação novamente.
Para mais conteúdo sobre Linux acesse: Tutoriais de Linux.