Gude Markus!

> Vielen Dank auch an dich Martin. Ich habe jetzt zwar ein Modul das das
> Programm zu einem Daemeon macht mit integriert, aber dein 
> Vorschlag hat mir sehr viel zum Verständniss eines Daemons gebracht.

Jetzt benutzt Du ein runtergeladenes (nonstandard) Modul, um eine
Funktionalität abzubilden, die in 5 Programmzeilen per Hand zu machen
gewesen wäre. 

> ich denke das wäre es dann. 
> Wäre nett, wenn jemand noch Tips zur doku (man-page) und 
> verständlichkeit
> des programms geben könnte.

Manpage ist gut. Das ist ein ganz normales Script, was man als Unixtippse in
30 Minuten aus dem Stegreif runterhacken und genauso schnell verstehen
können sollte. ;-)

> use Proc::Daemon;   # Modul /usr/lib/perl5/Proc-Daemon-0.02$Daemon.pm 

Man kann sowas mit ein bißchen eval{} würdevoll abkacken lassen, wenn das
Modul fehlt. Aber wie gesagt, auf das Modul kannst Du hier eigentlich
verzichten.

> sub runTest {
>           # abfragen ob prozd schon laeuft.   
>           open(PSGREP, "ps x |grep  prozd-0 | wc -l|") or die 
> "Fehler" ;  
>           $rtest = <PSGREP>;  chop $rtest;
>         if ($rtest >= 4 ){                            # 
> $rtest = 3 wenn prozd
> noch nicht lief!
>             print " $rtest Abbruch! Prozd lauft schon!\n";
>            exit 0;
>         }
>         else {
>         print "hurra\n";
>           }
>  } 

Einfacher wäre wahrscheinlich: 

        my @procs    = `ps ax|grep prozd-0|grep -v grep`;  
                # Prozeßliste einlesen
        my $no_procs = scalar(@procs);                    
                # Array als Skalar evaluiert gibt Anzahl der Elemente

Alternativ: Das ganze gegreppe bleiben lassen und sich die Prozeßliste
selbst anschauen, ist wahrscheinlich zuverlässiger:

my $pcount = 0;
open PIPE, "ps ax|";
while (<PIPE>){
        if (/prozd-0/){
                die "Wargh!!! Ich laufe schon woanders!\n" if (++$count >
1);
        }
}
close PIPE;

Und dabei ist noch nicht geklärt, ob man nicht vielleicht aus Perl selbst
auf die Prozeßliste zugreifen kann, bzw. ob zumindest /proc nicht irgendwo
ein schöneres Interface bietet als dieses fiese "ps". ;-)

Ciao,

-martin

---------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an