speicherresistenter prozessmonitor

Von: , Frage gestellt am Do, 27. Okt 2005

Hi all,

so nun muss ich mich auch mal hier in die perl ecke gesellen, wobei ich bemerken muss das ich da absoluter frischling bin, daher überwältigt mich auch schon dieses kleine problem:

also, auf einer unix-box (sco) werden sämtliche scripts über cron zeitlich gesteuert.Mitunter auch scripts für wichtige statistik-logs. Nun fällt leider aus irgendwelchen gründen regelmässig der cron prozess aus. wodurch die stats nich mehr generiert werden.

was ich nun machen will ist zunächst ein speicherresistentes KLEINES script laufen lassen das im grunde wie cron selber arbeitet um zu checken ob cron läuft oder nicht. sollte cron nich laufen solls initialisiert werden.

#!/usr/bin/perl
while true
{
check for cron process
if (!process running)
{
cron start
}
sleep (5 mins)
}

kann mir bei diesem kleinen prob jmd auf die sprünge helfen? oder vielleicht elegantere lösungen vorschlagen?

sollte das zufällig besser mit nem shellscript erledigt werden, entschuldige ich mich, das ich es im falschen brett gepostet habe. nichts desto trotz, vielen dank schon mal an alle.

gruß J.O.

7 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: speicherresistenter prozessmonitor

    Hallo,

    Ein Shellskript reich aucht (ungetestet):

    while true; do ps -el|grep cron >/dev/null||/etc/init.d/cron start; sleep 300; done
    


    Wobei das /etc/init.d/cron start fuer debian gilt, bei SCO weiss ich nicht, wie das geht. BTW mein Mitleid, dass mit SCO-Software arbeiten musst :)

    Gruesse,
    Mority

    • Antwort von nach 2 Stunden 0 hilfreich
      Re^2: speicherresistenter prozessmonitor

      Hi Mority,

      vielen dank für deine hilfe. das funzt so.

      greets

    • Antwort von nach 3 Stunden 0 hilfreich
      Re^2: speicherresistenter prozessmonitor

      Hi Mority (engl. Tastatureinstellung?),

      bei mir liefert der ps-Befehl (z.Zt. unter AIX, dürfte aber unter anderen Systemen gleich sein) auch den grep-Prozess selbst mit, der zweite Teil des Kommandos (cron-Neustart) duerfte also niemals durchlaufen werden.

      > ps -ef | grep cron
      root 10070     1   0   Aug 28      -  2:43 /usr/sbin/cron
       zyd3101 77238 83890   2 15:56:14  pts/2  0:00 grep cron
      

      Man sollte also so suchen, daß der grep selbst nicht gefunden werden kann, also z.B. durch Ausmaskieren eines Zeichens als Charakterklasse
      ... | grep '[c]ron'          
      

      gruss
      bernhard

      (ps: auch mir tut der arme SCO-Kerl leid) [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach 3 Stunden 0 hilfreich
        Re^3: speicherresistenter prozessmonitor

        hi bernhard,

        das problem das du beschreibst hatte ich auch erst und ich hab das dann mit ner option von grep gelöst. du kannst grep vom grep output excluden. mit -v und ner weiteren pipe.

        sollte dann so aussehen:
        ps -ef | grep -v grep | grep cron

        funktioniert bei mir wunderbar.

        greets

      • Antwort von nach 8 Stunden 0 hilfreich
        Re^3: speicherresistenter prozessmonitor

        Hallo, Hi Mority (engl. Tastatureinstellung?),
        Ja. bei mir liefert der ps-Befehl (z.Zt. unter AIX, dürfte aber
        unter anderen Systemen gleich sein) auch den grep-Prozess
        selbst mit, der zweite Teil des Kommandos (cron-Neustart)
        duerfte also niemals durchlaufen werden.
        bei ps -ef bei mir auch, bei -el nicht. Das war bewusst so gewählt ;)
        Aber ich vermute dass sich die GNU-Tools ein wenig anders als die SCO-*zensiert* verhalten.

        Grüße,
        Moritz (jetzt deutsche Tastatur)

  2. Antwort von nach 9 Stunden 0 hilfreich
    (OT) LOL

    was ich nun machen will ist zunächst ein speicherresistentes
    [...]
    Nur für die Zukunft: das heißt nicht "resistent", das heißt "resident". Das Programm bleibt (residiert) im Speicher und ist nicht immun gegen den bösen Speicherbazillus.

    Der Begriff an sich stammt auch eher aus der Zeit von nicht Multitasking-fähigen Betriebssystemen (DOS), als der Mechanismus nuch ein wenig anders funktionierte. Heute würde man sowas eher als Hintergrundprozess bezeichnen.

    Ist ein witziger (uralter) Fehler, der immer wieder für Erheiterung sorgt ;-)

    (BTW, nicht in den falschen Hals bekommen... den Fehler hab' ich auch gemacht.)

    • Antwort von nach 21 Stunden 0 hilfreich
      Re: (OT) LOL

      jaja, is mir schon klar,ich glaub ich war auch mal in der schule (oder wars doch nur ne kinderaufbewahrungsstube?)

      naja, hab den fehler unmittelbar nachdem ich "direkt abschicken"-button geklickt hatte bemerkt....:-) da wars dann zu spät. aber was solls, war ja jedem klar was gemeint ist.

      ausserdem wärs doch auch mal ne schöne sache wenn es prozess monitore(bildschirme im gerichtssaal;-)) gäbe, die gegen böse speicherattacken von memorysticks oder dem berüchtigten R.A.M.n1-bazillus resistent wären oder? :-)

      so ich residiere dann nun mal weiter hier im büro bis mich der feierabend (reboot) ausm gebäude (speicher) wirft und ich meine königliche wochenendresidenz aufsuchen kann.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!