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
Please also mark the comments that contributed to the solution of the article
Content-Key: 260749
Url: https://administrator.de/contentid/260749
Printed on: April 26, 2024 at 08:04 o'clock
3 Comments
Latest comment
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