Mailinglist Archive: opensuse-de (4664 mails)
| < Previous | Next > |
Re: Prozess abprüfen.. wie ?
- From: Jan.Trippler@xxxxxxxxxxx (Jan Trippler)
- Date: Fri, 20 Feb 2004 20:33:56 +0100
- Message-id: <200402202033.56290.Jan.Trippler@xxxxxxxxxxx>
Am Freitag, 20. Februar 2004 18:37 schrieb Stefan Waidele jun.:
> Alex Ascherl wrote:
> >>>Ich muss einen Prozess per Script abprüfen, ob er noch läuft
> >>> und wenn nicht diesen wieder starten.
> >>
> >>Schau Dir mal /etc/inittab nach 'respawn' durch.
> >
> > Ich dachte eher an ein Script welches per "ps ax |grep
> > ddclient" abprüft. Wie ich dann aber das Script entscheiden
> > lasse ob es ddclient wieder startet oder nicht weiss ich nicht.
>
> while /bin/true ; echo "Dein Prozess"; sleep 1; done
>
> Ohne ps und grep, sollte aber gehen. Ersetze das echo "Dein
> Prozess" mit dem Startbefehl Deines Programs.
Habe ich Tomaten auf den Augen? Was soll denn diese Schleife machen?
Wo wird da ein Prozess gestartet oder abgefragt, ob er noch
existiert?
Das, was ich da reininterpretiere ist eine Endlosschleife, die im
Sekundentakt was ausgibt.
Wenn man einen Prozess prüfen will, dann macht man das z. B. so:
ps -ef | grep -q [d]dclient || /pfad/zum/ddclient &
ps -ef holt sich alle Prozesse, grep -c prüft auf ddclient-Zeilen
(die []-Konstruktion verhindert, dass sich der grep selbst
mitzählt), wenn Ergebnis != 0 ist (nichts gefunden), wird er neu
gestartet (& = im Hintergrund, ggf. noch mit nohup).
Wenn man sicher gehen will, kann man z. B. noch den ps auf den User
einschränken, unter dem ddclient läuft, den grep evtl. aufbohren,
...
Jan
> Alex Ascherl wrote:
> >>>Ich muss einen Prozess per Script abprüfen, ob er noch läuft
> >>> und wenn nicht diesen wieder starten.
> >>
> >>Schau Dir mal /etc/inittab nach 'respawn' durch.
> >
> > Ich dachte eher an ein Script welches per "ps ax |grep
> > ddclient" abprüft. Wie ich dann aber das Script entscheiden
> > lasse ob es ddclient wieder startet oder nicht weiss ich nicht.
>
> while /bin/true ; echo "Dein Prozess"; sleep 1; done
>
> Ohne ps und grep, sollte aber gehen. Ersetze das echo "Dein
> Prozess" mit dem Startbefehl Deines Programs.
Habe ich Tomaten auf den Augen? Was soll denn diese Schleife machen?
Wo wird da ein Prozess gestartet oder abgefragt, ob er noch
existiert?
Das, was ich da reininterpretiere ist eine Endlosschleife, die im
Sekundentakt was ausgibt.
Wenn man einen Prozess prüfen will, dann macht man das z. B. so:
ps -ef | grep -q [d]dclient || /pfad/zum/ddclient &
ps -ef holt sich alle Prozesse, grep -c prüft auf ddclient-Zeilen
(die []-Konstruktion verhindert, dass sich der grep selbst
mitzählt), wenn Ergebnis != 0 ist (nichts gefunden), wird er neu
gestartet (& = im Hintergrund, ggf. noch mit nohup).
Wenn man sicher gehen will, kann man z. B. noch den ps auf den User
einschränken, unter dem ddclient läuft, den grep evtl. aufbohren,
...
Jan
| < Previous | Next > |