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-ID: 260749

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Bachti
Lösung Bachti 22.01.2015 um 09:30:33 Uhr
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 )
Lochkartenstanzer
Lösung Lochkartenstanzer 22.01.2015, aktualisiert am 14.01.2019 um 21:39:20 Uhr
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
ITwissen
Lösung ITwissen 14.01.2019 um 21:10:38 Uhr
Goto Top
Das kann man mit "exec" machen, z.B. exec $0