2016-03-26 14 views
0

Bir betik kovanından çalıştığım şu komut dosyası var. Ben çalıştırdıktan sonra ve ben ********* Exiting *********** bildirimini gözlemledim, bash kabuğundan çıkmak istedim ama arka planlanmış java işlemine devam et. Ancak, exit no'lu bash komutumda yazdığımda, sadece echo exit geri döndü ama sonra sadece orada oturur.Komut dosyası arkaplanından sonra bir bash kabuğundan çıkmak görev

Soru: Kabuktan çıkıp görevin devam etmesini sağlamak için bir komut dosyasından bir görevin arkaplanının bir yolu var mı?

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

See kullanabilirsiniz: [Linux: SSH istemcisi kapattıktan sonra durdu olmaktan bir arka plan işlemi engelle] (http://stackoverflow.com/q/285015/3776858) – Cyrus

cevap

1

Sen

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