Crear un daemon en linux

20 enero 2007

Ando buscando como hacer un daemon en una máquina linux que monitorice diferentes procesos. He encontrado lo que tiene que hacer un daemon:
* Convertirse en un process-leader (haciendo un setsid, de lo contrario sería un proceso huérfano),
* Separarse de la shell que lo ejecutó (después de hacer fork),
* Cambiar el directorio (chdir) al directorio raiz (por temas de seguridad),
* Establecer umask en 0 (por temas de seguridad),
* Cerrar todos los descriptores de fichero (stdin, stderr, stdout) a /dev/null
Un ejemplo de daemon programado en perl.

use POSIX qw(setsid);
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
#open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";
while(1) {
sleep(5);
print "Hello...\n";
}

En este caso no cierra la salida estándar para poder ver que el daemon está activo.
Podemos ver un ejemplo de configuracion de los scripts de parada y arranque
Más detalles en Linux daemon HOWTO

About these ads

2 Responses to “Crear un daemon en linux”

  1. Gonzalo Says:

    Idolo una consulta. Quiero crear un daemon que, cuando apriete BLOQ MAYUS haga algo para avisar al usuario. o con cualquier tipo de bloqueo. Esto sirve de herramienta visual cuando uno está cansado, o solo por curiosidad. Quería preguntarte como podría un daemon reconocer el pulsado de tales teclas. muchas gracias

  2. lalehe Says:

    quisiera hacer un demonio para iptables


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

A %d blogueros les gusta esto: