[Perl] Demonios!!!
Alejandro G. Bedoya
nezumi en prodigy.net.mx
Mar Mayo 9 01:17:39 CDT 2006
Saludos!!!
Estoy haciendo un script para generar un pequeño demonio, he aqui la base:
#!/usr/bin/perl
use strict;
print " > Iniciando daemon...\n";
use POSIX qw(setsid);
#chdir '/' or die "Can't chdir to /: $!";
umask 0;
open(STDIN, "/dev/null") or die;
open(STDOUT, ">>../data/demon.out") or die;
open(STDERR, ">>../data/demon.err") or die;
defined(my $Pid=fork) or die "Can't fork: $!";
exit if $Pid;
setsid or die "Can't start a new session: $!";
$SIG{'INT' } = 'interrupt';
$SIG{'HUP' } = 'interrupt';
$SIG{'ABRT'} = 'interrupt';
$SIG{'QUIT'} = 'interrupt';
$SIG{'TRAP'} = 'interrupt';
$SIG{'STOP'} = 'interrupt';
$SIG{'TERM'} = 'interrupt';
while (1) {
sleep 60;
#Haz algo...
}
sub interrupt {
close(STDOUT);
close(STDERR);
exit;
}
Sin embargo me quedan algunas dudas, esperando que me puedan ayudar...
Si hay que cambiar al directorio a raiz???
Como puedo hacer para que el script no sea iniciado varias veces???
Como puedo hacer para que el script funcione con parametros como
apache(start, restart, stop, status)???
Me interesa sobretodo el "stop" para terminarlo de manera segura...
Porque el $Pid me regresa cero???
Porque si hago una conexion a postgres antes de demonizarlo me aparece
un error, y si lo pongo despues de la conexion no???
---
Sinceramente
Alejandro G. Bedoya
Más información sobre la lista de distribución Perl