Prozess überwachen und ggf. neustarten

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Maverick83
Beiträge: 20
Registriert: 03.12.2007 15:31:57

Prozess überwachen und ggf. neustarten

Beitrag von Maverick83 » 03.01.2008 16:54:31

Hallo Zusammen

Ich möchte gerne einen bestimmten Prozess überwachen und ggf. neustarten wenn er nicht mehr da ist.
Gibt es dafür ein Tool oder wie bewerkstelligt man so etwas am besten?

Danke für Euren Ideen

Michi

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 03.01.2008 21:09:12

entweder einfach eine Zeile z.B

Code: Alles auswählen

xx:2345:respawn:/pfad/zum/programm 
in die Datei /etc/inittab eintragen ( siehe "man inittab"), oder einen Cron-Job schreiben

Gruß
gms

Benutzeravatar
eagle
Beiträge: 2282
Registriert: 05.11.2002 11:20:53
Wohnort: Berlin

Beitrag von eagle » 03.01.2008 21:59:23

Mit dem Kommando pidof kannst du dir die Prozess ID von einem bestimmten Programm gegeben lassen. Über den exit Status kannst dann prüfen ob der Prozess läuft
man pidof hat geschrieben:..
EXIT STATUS
0 At least one program was found with the requested name.

1 No program was found with the requested name.
..
Das könnte dann im Skript etwa so aussehen:

Code: Alles auswählen

#!/bin/sh

PID=`pidof foobar`

# Testen des return Wertes 
if [ $? -eq 1]; then
   # starten des Programms
   /pfad/foobar
fi
"I love deadlines. I love the whooshing sound they make as they fly by." -- Douglas Adams

Maverick83
Beiträge: 20
Registriert: 03.12.2007 15:31:57

Beitrag von Maverick83 » 04.01.2008 11:46:31

@eagle: Danke für dein Skript aber das Minimum was ich bei Cron einstellen kann ist eine Minute. Ich möchte aber einen intervall von ca 3. Sekunden.
Geht das mit Cron auch?

@gms: inittab tönt gut, leider funktioniert das Programm nicht richtig wenn es von dort aus gestartet wird.

Ich werde beide Varianten genauer prüfen, danke

Benutzeravatar
mistersixt
Beiträge: 6601
Registriert: 24.09.2003 14:33:25
Lizenz eigener Beiträge: GNU Free Documentation License

Beitrag von mistersixt » 04.01.2008 12:54:39

Mach zur Not eine Erweiterung von eagles Beispiel-Script:

Code: Alles auswählen

#!/bin/sh

while true
do

   PID=`pidof foobar`

   # Testen des return Wertes
   if [ $? -eq 1]; then
      # starten des Programms
      /pfad/foobar
   fi 

sleep 3
done
Und dann das Script einfach permanent im Hintergrund laufen lassen.

Gruss, mistersixt.
--
System: Debian Bookworm, 6.11.x.-x-amd64, ext4, AMD Ryzen 7 3700X, 8 x 3.8 Ghz., Radeon RX 5700 XT, 32 GB Ram, XFCE

poncho
Beiträge: 106
Registriert: 23.12.2007 19:22:35

Beitrag von poncho » 04.01.2008 13:58:18

mistersixt hat geschrieben:Mach zur Not eine Erweiterung von eagles Beispiel-Script:

...

Und dann das Script einfach permanent im Hintergrund laufen lassen.

Gruss, mistersixt.
Wobei dieses Script theoretisch auch abstürzen kann :lol:

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.01.2008 14:42:11

Dann kannst du ja ein weiteres Skript schreiben, was minütlich das "laufen" des Skriptes überprüft und ggf. nachstartet.
Oh, yeah!

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Beitrag von detix » 05.01.2008 07:23:33

Es gibt aber auch ein tool welches das können müßte, nennt sich
monit
Ich komme mit der Konfiguration und Syntax nicht klar,
ein Versuch wäre es aber wert.
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten