mini-watchdog en C

seguridad

A continuación os propongo el codigo de un pequeño WATCHDOG: Yo por ejemplo lo uso para tener mi aMule siempre funcionando, ya que suele cascar amenudo.

Para ejecutarlo yo por ejemplo hago:

$ ./watchdog /usr/bin/amule 

El funcionamiento es muy sencillo:

1. Tomamos los argumentos del usuario y verificamos que sean correctos.
2. Ejecutamos el programa que se paso como argumento y esperamos a que finalice su ejecución.
3. En funcion de lo que devuelve el programa sabemos si ha acabado correctamente o de manera erronea.
4. Si acabo correctamente salimos, sino volvemos al punto 2.

El código del programa es el siguiente:

#include "stdio.h"
 
int main(int argc,char *argv[]){
     int pid,ret=-1;
 
    //verificamos si los argumentos son correctos
    if (argc!=2) {
         printf("\nERROR: Numero de argumentos incorrecto");
         printf("\nLa forma de usarlo es $./watchdog NOMBRE_PROGRAMA\n");
         return -1;
    }
 
    //iniciamos el WATCHDOG y mostramos su PID por si es necesario
    printf("\nWATCHDOG COMIENZA SU ACTIVIDAD [PID=%d]",getpid());
 
    while (ret!=0){
         //ejecutamos el comando que le hemos indicado
         if((pid=fork())==0) {
             execl(argv[1],argv[1],NULL);
          }
         printf("\n%s COMIENZA A EJECUTARSE [PID=%d]",argv[1],pid);
         fflush(stdout);
 
        //esperamos a que el programa acabe su ejecución
        wait (&ret);
        printf("\n%s HA DEVUELTO %d",argv[1],ret);
 
        if (ret==0) {
             //si devuelve 0 el programa fue finalizado correctamente
             printf("\n\nSALIDA CORRECTA\n");  
       }else {
            //sino, finalizo de manera erronea
            printf("\n\nDEBE VOLVER A CARGARSE\n");
       }
 
      //sincronizamos el flujo stdout   
      fflush(stdout);
  }
} //fin main

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

mm

yo utilizo mldonkey y va de muerte, se tira meses y meses sin caerse..

Imagen de greenbite

Ofuscación

¿sabes si mldonkey soporta ofuscación de protocolo?, yo precisamente uso la versión inestable de amule para poder usar esa caracteristica porque tengo ono y capan mucho los p2p. Si mldonkey soporta ofuscación podria probarlo ...

Visita mi Blog de Informatica : http://www.greenbiteblog.org

Imagen de magmax

Amule en debian

Hola!

Amule en debian va por la versión 2.2.1-1, que ya sí que soporta ofuscación Laughing out loud
Y a mí no se me cae así como así (no como la versión que tuvimos durante años).

Miguel Ángel García
http://magmax.org

Imagen de Lk2

Sin mula

Yo llevo tiempo sin darle candela a la mulita, pero ¿ofuscación? Dijeron en sus foros hace tiempo expremente que pasaban de "perder" el tiempo en eso... me alegro de que hayan recapacitado.

Yo siempre he usado amule en modo daemon y la verdad que pocas veces recuerdo que se colgara...

Imagen de tato

Mi amule si se cierra.

Pues a mí al poco tiempo de encenderlo... plof!, se cierra. Lleva así unas dos semanas. Probaré el mldonkey a ver que tal.