脚本背景任务后退出bash shell

时间:2016-03-26 23:33:43

标签: linux bash shell

我有一个从bash shell运行的脚本。在我执行它之后,我观察********* Exiting ***********语句,我希望退出bash shell,但继续后台java进程。但是,当我在bash提示符下键入exit时,它只会回显exit,但只是坐在那里。

问题:我有办法在脚本中处理任务,以便我可以退出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 个答案:

答案 0 :(得分:1)

您可以使用

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