Now I can't kill that port, and I can't use the port for anything else. How do I find the daemon to kill it (
ps -ef
doesn't show it) and close the port? I cannot uselsof
because I'm using Redhat.
Outros apontaram um dos erros acima. Um segundo erro é que não é possível "matar" as portas. Portas não são processos. Um terceiro erro é a suposição de que você tem algum processo secreto de magia que ps -e
não mostrará para você. Se não houver nenhum processo listado, então, salvo alguns casos de canto obscuros, não há processo . Um quarto erro, ironicamente talvez o mais importante, é assumir que uma conexão com a porta ainda está aberta em primeiro lugar.
Uma explicação muito mais mundana, que se encaixa no comportamento relatado sem a necessidade de processos magicamente invisíveis, é que o processo foi encerrado, mas nada pode ser ligado à porta porque a conexão TCP ainda está em TIME_WAIT
. A opção -o
para netstat
é sua amiga. Como de fato é a opção -p
.
SuperUser não é o lugar certo para perguntar sobre como alguém escreve tais daemons, a propósito. E o StackOverflow, que é, trata disso e de questões relacionadas repetidas vezes.
Leitura adicional
- Vic Metcalfe, Andrew Gierth, e outros (1998-05-21). "Escrevendo aplicativos de servidor (TCP / SOCK_STREAM)" . Programação de Sockets UNIX em C - Perguntas Mais Frequentes .
- link