2016-04-14 9 views
0

ich Bash-Skript haben Java-Prozess zu starten, unter Befehl:Wie Java-Prozess zu starten, wenn es aus Skript sterben

#!/bin/bash 
java -jar test.jar 

Ich möchte ein Skript machen, so dass, wenn der Java-Prozess dieses Glas sterben, es wird Beginnen Sie erneut mit diesem Skript. Brauche ich eine do while-Schleife in meinem Skript und welche Bedingung sollte ich verwenden, um zu überprüfen, ob Java-Prozess dieses Glases läuft oder nicht und wenn sterben, dann feuern Sie es wieder auf.

+0

Suche nach 'exit status des Skripts'! –

+2

'während! java -jar test.jar; machen :; done "Wird ausgeführt, bis" test.jar "mit 0 beendet wird als Exit-Status – andlrc

Antwort

1

Im Folgenden wird

while ! java -jar test.jar; do :; done 

Abschleppdienst bis test.jar Ausgänge mit 0 als Exit-Code ausführen:

while ! java -jar test.jar; do :; done 
# ^^     ^
#  | |      while loops needs a body, and `:` will do nothing 
#  | The command to run, while will check the exit code and continue if its 0 (true) 
#  Flip the exit code, so true becomes false and false becomes true 

Wenn Sie daran interessiert sind, bis test.jar Ausfahrten laufen Exit-Code falsy, Sie kann ! weglassen:

while java -jar test.jar; do :; done 
+0

Danke euch allen. Ich werde all diese Dinge in meinem Kopf behalten :) –

1

Verwenden Sie die bash bis in eine Schleife, bis der Bash-Erfolg Rückkehrcode 0 gesehen wird.

#!/bin/bash 
until java -jar test.jar 
do 
    echo "Retrying Command.." 
done 
Verwandte Themen