rsadmchef
Goto Top

Bash - Script Neustart

Hallo Team,

ich suche nach einer Lösung mit der ein Bash Script -abhängig von einem Ereignis- sich bendet + sich selbst neu startet.
Die Prozess-ID fange ich mit der Zuweisung $$ ab.

Ich habe einen Ansatz, so etwa:

#!/bin/bash
scriptPID=$$
...
Ereignis ()
...
if [[ $Ereignis ="" ]]; then
...
exit;
restart $$
...
fi

Dieses '"restart" ist für mich nicht klar wie das im Script auszusehen hat.

Bitte um Unterstützung,
Danke.

LG
rsadmchef

Content-Key: 260749

Url: https://administrator.de/contentid/260749

Printed on: April 19, 2024 at 12:04 o'clock

Member: Bachti
Solution Bachti Jan 22, 2015 at 08:30:33 (UTC)
Goto Top
Hallo!
Ich bin nicht sicher, ob sich das innerhalb eines einzigen Skripts lösen lässt. Mit "exit" bist du erstmal raus und das Skript beendet. Ein danach stehender Befehl zum restart würde m.E. nicht ausgeführt.
Ich sehe eine Möglichkeit darin, dem Exit einen Fehlercode mitzugeben, der z.B. ein zweites Skript (Überwachungsskript) veranlasst, den Prozess neu zu starten. ( http://bash.cyberciti.biz/guide/Exit_command )
Member: Lochkartenstanzer
Solution Lochkartenstanzer Jan 22, 2015, updated at Jan 14, 2019 at 20:39:20 (UTC)
Goto Top
Moin,

das funktioniert normalerweise zweigeteilt. ein "watchdog", der schaut, ob das skript noch läuft, ggf über cron gestartet und einen der die Arbeit macht. Das kannst Du sogar mit einem Skript abfackeln, indem Du forkst und der Elternprozess überwacht dann, ob der Kindprozess läuft und ggf. neu startet. Der Kind-Prozess führt dann alles aus und beendet sich dann beim Ereignis.

lks

Edit: Typo
Member: ITwissen
Solution ITwissen Jan 14, 2019 at 20:10:38 (UTC)
Goto Top
Das kann man mit "exec" machen, z.B. exec $0