[EMAIL PROTECTED] - Digest Tuesday, February 20 2001 Volume 01 : Number 265 ---------------------------------------------------------------------- Date: Tue, 20 Feb 2001 06:23:20 +0100 From: Martin Schmitt <[EMAIL PROTECTED]> Subject: Re: [PUG]Daemeon mit perl * Markus Hahn ([EMAIL PROTECTED]) wrote/schrieb: > 1.Gibt es Perl-module die daf�r sorgen das ein Programm sich von der > Shell verabschiedet und als Daemon im Hintergrund l�uft? > (unter CPAN.org nichts vern�nftiges gefunden.) Daf�r brauchst Du kein Modul. Read the FAQ: http://www.perl.com/pub/doc/manual/html/pod/perlfaq8.html#How_do_I_fork_a_daemon_process_ Ich hab hier einen selbstgeschriebenen Daemon, der meine Sigs austauscht, da sieht die Kernfunktionalit�t so aus: if ( fork() == 0 ) { $0 = "sigmaker"; setsid() or die "Failure while trying to fork: $!\n"; chdir "/" or die "Can't chdir to Root: $!\n"; open STDIN, "</dev/null" or die "Access to /dev/null failed: $!\n"; open STDOUT, ">/dev/null" or die "Access to /dev/null failed: $!\n"; open STDERR, ">/dev/null" or die "Access to /dev/null failed: $!\n"; while (1){ open fdOUT, ">$sigout" or die "Can't open $sigout: $!\n"; print fdOUT "$sig[int(rand($#sig+1))]\n"; close fdOUT; sleep $delay; } }else{ print "Forking into background\n"; } (Ich mache, weil ich das bei der Kundschaft tun mu�, auch zuhause viel auf Englisch...) Das schwierige dabei ist, sich die Sache mit if (fork() == 0) zu verinnerlichen. Dazu mindestens die Manpage von fork lesen, und wo Du schon dabei bist, die Manpage von setsid. Sind beide recht kurz und verst�ndlich. Wenn Du es ganz richtig machen willst, brauchst Du noch Signalhandler, aber das mu� nicht unbedingt sein. > 2.Unter CPAN gibt es ein EVENT::Time modul wie baue ich das richtig in > das Script ein? EVENT::Time gibt es auf CPAN nicht. Ich kann mir aber denken, was Dein Problem ist. Du solltest Dir mal irgendwo einen Text �ber objektorientierte Programmierung suchen, am besten mit Perl-Schwerpunkt. Dann wird die Verwendung von Modulen etwas verst�ndlicher. In "Fortgeschrittene Perl-Programmierung" gibt es z.B. ein Kapitel dar�ber. Wenn Du das Buch schon hast, ist das Kapitel �ber Datenstrukturen ganz am Anfang auch recht lohnend als Grundlage. "Perl in a Nutshell" hat am Anfang des Kapitels mit den Modulen auch ein paar Seiten �ber Klassen, Instanzen und Methoden, aber das scheint mir ziemlich knapp bemessen zu sein. > Ich beise mir auch noch die Z�hne daran aus und halte euch auf dem > laufenden. Viel Erfolg. :-) Fast h�tte ich es vergessen. Damit fork() und setsid() funktionieren, brauchst Du "use POSIX qw(fork setsid);" am Anfang des Scripts. Ciao, - -martin - -- I haven't lost my mind; I'm sure it's backed up on tape somewhere! ------------------------------ End of [EMAIL PROTECTED] - Digest V1 #265 ************************************ -------------------------------------------------------------------------- Digest von "[EMAIL PROTECTED]" - http://www.pug.org

