Como matar o processo 'invisível' usando a porta

Como matar o processo 'invisível' usando a porta

Em uma máquina Linux, estou tentando iniciar o servidor Glassfish.

./startserv

Isso retorna a seguinte mensagem:

There is a process already running using the admin port 4848 -- it is probably another instance of a Glassfish server

Tentei identificar qual processo é esse com o seguinte comando:

lsof -t -i tcp:4848

Em outra máquina em que o Glassfish está sendo executado, este comando retorna o ID do processo usado pelo Glassfish. Porém, na máquina em que estamos tendo o problema, nada é retornado.

Qual a melhor forma de identificar e encerrar o processo pela porta 4848, visto que lsof -t -i tcp:4848não está ajudando?

Obrigado

Responder1

Provavelmente há duas coisas acontecendo aqui. Uma é que há algo escutando na porta e lsof e amigos estão faltando ou o script de inicialização/mensagem de erro está confuso.

Namespaces de rede podem ocultar a porta, mas se você quiser consultar diretamente o sistema de arquivos proc, tente

grep 12f0 /proc/net/tcp
grep 12f0 /proc/net/tcp6

12f0 é 4848 em hexadecimal e esses arquivos são onde o kernel armazena as informações sobre os soquetes TCPv4 e TCPv6.

Se você obtiver linhas correspondentes, então realmente há algo ouvindo a porta e suas ferramentas são sus. Nenhum hit significa que você tem namespaces em jogo ou o script de inicialização está sendo executado.

Você também pode verificar se o soquete está realmente em uso com o netcat

nc -l 4848

Se estiver silencioso, então está tudo bem, se reclamar do soquete em uso, então realmente está em uso e você precisa verificar se suas ferramentas estão ok e os namespaces.

informação relacionada