Mailinglist Archive: opensuse-de (2762 mails)
| < Previous | Next > |
AW: CRON Problem
- From: MMeurer@xxxxxxx (Marco Meurer)
- Date: Tue Jun 01 15:53:38 1999
- Message-id: <E13E2933C01BD1118A6D00A024CB764918BCCA@xxxxxxxxxx>
Hallo,
hab das Problem behoben... ich habe aus dem Skript noch ein weiteres Skript
aufgerufen nur am Ende ein "exit 0" vergessen... Heute morgen nach dem lauf
war kein zombie Prozeß mehr da :-))))
Danke für die Antwort..
Gruß
Marco Meurer
-----Ursprüngliche Nachricht-----
Von: gerstl@xxxxxxxxxxx [<A
HREF="mailto:gerstl@xxxxxxxxxxx">mailto:gerstl@xxxxxxxxxxx</A>]
Gesendet am: Montag, 31. Mai 1999 19:52
An: suse-linux@xxxxxxxx
Betreff: Re: CRON Problem
Melchior FRANZ <a8603365@xxxxxxxxxxxxxxxxx> wrote:
Ein cron-job muß ja vom `cron' sowieso gleich in den Hintergrund
geforkt werden (ohne &). Er kann doch nicht minutenlang
auf das Ende z.B. eines Backups warten, um es dann zu beenden. In der
Zwischenzeit können ja weitere Jobs anfallen.
Richtig, cron forkt den Job in den Hintergrund, checkt aber dann
trotzdem (per SIGCHLD Signal-Handler), wann sich das liebe Kind beendet
hat und was dann der Exit-Status war. Schon alleine deswegen,
weil man ja eine Mail bekommt, wenn der Job sich mit einem
Status != 0 beendet...
Außerdem, wozu sollte cron einen Job `beenden' müssen.Zombies entstehen dann, wenn ein Prozess einen Kind-Prozess (hm,
Wenn ein im Hintergrund laufendes Script fertig ist, beendet sich
die Shell, die zu seiner Ausführung aufgerufen wurde. Wie kann es
passieren, daß das Betriessystem das nicht erkennt und den
Prozeßeintrag entfernt? (Allerdings dürfte es nach meiner `Theorie'
überhaupt /nie/ Zombies geben, und das entspricht ja auch nicht der
Realität... ?!)
klingt das bloed in Deutsch...) per fork() erzeugt und sich dann
der Kind-Prozess beendet. Obwohl das Kind fertig ist wird solange
ein Zombie-Eintrag in der Prozesstabelle gehalten, bis der Eltern-
Prozess den Exit-Status des Kindes abgefragt hat (per waitpid();
woher soll das OS wissen, ob und wann der Elternteil jemals den
Exit-Status wissen will? Also haelt das OS den Zombie-Eintrag um
den Exit-Status fuer alle Faelle zu speichern). Der Zombie sollte
aber auch verschwinden, wenn der Eltenprozess stirbt.
Zombie sind insofern schlecht, als dass sie einen Eintrag in der
(limitierten) Prozesstabelle beanspruchen.
Zum Cron-Problem: ich vermute, dass cron in diesem Fall nicht mit-
bekommt, dass der Job zu Ende ist (z.B. weil der Job per segmentation
fault oder aehnlichem gar boese in die Hosen geht), also auch nie
den Exit-Status abfragt und deshalb der Zombie solange rumliegt,
bis eben auch Cron beendet wird. Sollte man anhand der 'parent process
ID' des Zombies verifiezieren koennen...
Andreas
--
Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@xxxxxxxx
schicken, mit dem Text: unsubscribe suse-linux
--
Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@xxxxxxxx
schicken, mit dem Text: unsubscribe suse-linux
| < Previous | Next > |