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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 260749
Url: https://administrator.de/contentid/260749
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
3 Kommentare
Neuester Kommentar
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 )
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 )
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
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