Tengo un red5 server (JAVA) ejecutándose en mi servidor Linux.Linux: ¿Cómo matar programas que usan el puerto 1935?
A veces, el servidor se apaga. Cuando trato de reiniciar recibí un error:
"Error de encuadernación, este puerto está en uso aleray".
así que trato de matar al servidor con killall -9 java y tratar de reiniciar el servidor: mismo error.
Tengo que esperar un tiempo (unos 2-3 minutos) y reiniciarlo de nuevo: eso funciona.
Solo necesito saber por qué cuando elimino el proceso todavía tengo que esperar 2-3 minutos antes de que el puerto 1935 sea gratuito y pueda ejecutar el servidor nuevamente.
¿Hay una manera de matar este proceso inmediatamente y liberar el puerto?
no lo hago cree las respuestas que culpan a SIGKILL por una limpieza fallida del puerto. El sistema operativo sabe perfectamente que el proceso se ha ido y renuncia a sus recursos de la manera estándar. La forma estándar para un puerto de escucha TCP cerrado es que no estará disponible durante un tiempo para evitar que se conecte al servidor incorrecto. Esto se puede evitar más fácilmente al usar SO_REUSEADDR como se menciona en la respuesta de Justin. –