Prefacio (omita el problema real): Tengo una aplicación que escucha en el puerto 843. Este proceso se ejecuta como root. A veces, matar el proceso (con ^C) lo deja colgado durante mucho tiempo (¿para siempre?). Como estoy impaciente, lo mato con kill -9
. El problema ahora es que el puerto 843 todavía está escuchando, aunque no haya ninguna aplicación allí.
Al mirar, lsof -i
no veo ningún proceso escuchando 843, incluso cuando se ejecuta como root. Sin embargo, mirar netstat -a
muestra que está escuchando, e incluso algunas conexiones que no fueron eliminadas correctamente:
Proto Recv-Q Send-Q Local Address Foreign Address (state)
tcp6 0 0 localhost.843 localhost.60927 CLOSE_WAIT
tcp6 386 0 localhost.843 localhost.60926 CLOSE_WAIT
tcp6 0 0 localhost.843 localhost.60925 CLOSE_WAIT
tcp6 386 0 localhost.843 localhost.60924 CLOSE_WAIT
tcp46 0 0 *.843 *.* LISTEN
tcp4 0 0 *.843 *.* LISTEN
Una pregunta similarrecomienda que no me meta en esta situación en primer lugar. Es un buen consejo, pero un poco difícil ya que no es mi aplicación. Además, sería bueno salir de esto de todos modos.
¿Hay alguna forma de salir de este lío sin reiniciar? ¿Es importante el hecho de que lo ejecuté como root? (Solo necesito root para escuchar puertos con números bajos, para lo cual no encontré una manera sin instalar software como authbind).