2016-03-26 8 views
0

Ich habe das folgende Skript, das ich aus einer Bash-Shell ausführen. Nachdem ich es ausgeführt habe und ich die ********* Exiting *********** Anweisung beobachte, möchte ich die Bash-Shell beenden, aber den Hintergrund java Prozess fortsetzen. Jedoch, wenn ich 10 an meiner Bash-Eingabeaufforderung eingeben, ist es einfach Echo exit zurück, aber dann sitzt nur da.Eine Bash-Shell nach einem Skript-Hintergrund beenden eine Aufgabe

Frage: Gibt es eine Möglichkeit für mich, eine Aufgabe innerhalb eines Skripts zu hinterfragen, so dass ich die Shell verlassen und die Aufgabe fortsetzen kann?

#!/bin/sh 
pid=$(cat /tmp/myapp.pid) 
if [ "$(ps -o comm= -p "$pid")" = "java" ]; then 
    echo "Killing the previous myapp process" 
    kill $pid 
else echo "Could not find a previously running myapp process" 
fi 
cd ~/deploy 
echo "Launching myapp" 
java -Dconfig.file=./myapp-1.conf -jar myapp.jar & echo "$!" > /tmp/myapp.pid 
sleep 5 
echo "********* Exiting ***********" 
+1

Siehe auch: [Linux: einen Hintergrundprozess Verhindern, dass nach dem Schließen SSH-Client gestoppt] (http://stackoverflow.com/q/285015/3776858) – Cyrus

Antwort

1

können Sie verwenden

#!/bin/sh 
... 
nohup [command] & 
exit 0 
Verwandte Themen