• Publicidad

Demonio

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Demonio

Notapor Kaik » 2007-10-25 15:30 @687

Hola a todos, tengo un servicio donde estoy utilizando IO::Socket.

Quisiera saber cómo podría implementar un demonio que controle que este servicio está arriba.

Gracias de antemano.
Kaik
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2007-01-24 14:21 @639
Ubicación: Buenos Aires

Publicidad

Notapor explorer » 2007-10-25 19:11 @841

Que esté activo significa que está el proceso en la lista de procesos activos y que está dando el servicio.

Una manera de hacerlo sería un programa que de forma periódica se conectase al servicio como si fuese un cliente e hiciera una petición de la cual esperamos una determinada respuesta.

Se podría diseñar el servicio para que esa respuesta siempre fuera la misma, es decir, además de todos los posibles comandos de los que disponen los clientes para trabajar con el servidor, éste tendría un comando más que se llamaría por ejemplo 'still alive' (sigo vivo) cuya única misión sea responder al programa monitor, y así saber que, efectivamente, sigue vivo.

El programa monitor lo puedes ejecutar de forma periódica con la ayuda del demonio cron.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kaik » 2007-10-25 19:36 @858

Muchas gracias,

Con la técnica que dices si el servidor estuviera activo pero ocupado el demonio intentaría levantarlo.

¿Qué política crees la adecuada respecto de tiempo de espera?
Kaik
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2007-01-24 14:21 @639
Ubicación: Buenos Aires

Notapor explorer » 2007-10-25 19:52 @869

Kaik escribiste:Con la técnica que dices si el servidor estuviera activo pero ocupado el demonio intentaría levantarlo.

Depende. Hay servidores que pueden atender múltiples peticiones de forma simultánea. Por ejemplo, un servidor web. Si le pido una página html y me responde, todo va bien. Si le pido y no me responde en un tiempo, esperaré unos segundos más y haré una segunda petición. Si no responde, entonces es posible que esté muy saturado o completamente bloqueado. La reacción del monitor depende de la urgencia del servicio que está prestando.

Yo tengo monitores que, si la carga del sistema supera una determinada cantidad, hace un reseteo completo de todo el sistema. Este es el caso más grave, pero al menos garantiza que la máquina quedará en un estado perfectamente estable. En otros casos, me vale con parar y levantar los demonios que se hayan muerto.

Kaik escribiste:¿Qué política crees la adecuada respecto de tiempo de espera?
Pues depende de la urgencia de los servicios que ofrecen. No es lo mismo un servicio ftp que se va a utilizar 3 veces al día, que un servicio de correo electrónico que es vital que esté funcionando 24x7.

Yo tengo monitores para procesos que miran cada 5, 15, 60 minutos, 24 horas, 7, 30 y 90 días (sí, tres meses) según la importancia del proceso.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Kaik » 2007-10-25 20:26 @893

Nuevamente Gracias, queda claro
Kaik
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2007-01-24 14:21 @639
Ubicación: Buenos Aires


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados