viernes, septiembre 29, 2006
Primer Demonio en PERL
Vamos a ver un ejemplo muy sencillo de como crear un daemon en perl. Antes que nada el código:
#!/usr/bin/perl -w
use strict;
use POSIX qw(setsid);
use Readonly;
Readonly my $DEMORA_ENTRE_CHEQUEOS => 30;
Readonly my $ARCHIVO_A_ESPERAR => "/tmp/noticias.txt";
daemonize();
while( 1 ) {
if ( -e $ARCHIVO_A_ESPERAR ){
# Se encuentra el archivo. procesarlo...
#...
#...
}
sleep( $DEMORA_ENTRE_CHEQUEOS );
}
sub daemonize {
open STDIN, '/dev/null' or die "No puedo leer /dev/null: $!";
open STDOUT, '>>/dev/null' or die "No puedo escribir /dev/null: $!";
open STDERR, '>>/dev/null' or die "No puedo escribir /dev/null: $!";
defined(my $pid = fork) or die "NO puedo hacer fork: $!";
exit if $pid;
setsid or die "NO se puede iniciar una sesion nueva: $!";
umask 0;
}
Aquí se puede observar el demonio corriendo. Ya se ha liberado de la consola y su Parent Process ID es 1 (init).
pablo@locobox:~/Desktop/demonios$ ps -ef | grep primer_demonio
pablo 15000 1 0 07:51 ? 00:00:00 /usr/bin/perl -w ./primer_demonio.pl
Bueno, en definitiva un ejemplo sencillo para demostrar lo sencillo que es crear un demonio en perl.
Si desean profundizar en el tema, les recomiendo la lectura de este artículo (en inglés).
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario