2016-03-26 37 views
0

我有以下腳本,我從bash shell運行。我執行它之後,我觀察到********* Exiting ***********聲明,我希望退出bash shell,但是後續的進程仍在繼續java。但是,當我在我的bash提示符下鍵入exit時,它只是回顯exit,但後來就坐在那裏。在腳本背景之後退出bash shell任務

問題:有沒有辦法讓我在腳本中後臺執行任務,以便我可以退出shell並讓任務繼續?

#!/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

參見:[Linux的:從關閉SSH客戶端後停止防止後臺進程(http://stackoverflow.com/q/285015/3776858) – Cyrus

回答

1

您可以使用

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