我正在编写一个watchDog脚本,它启动我的应用程序并在检测到为down时重新启动它(根据进程PID) .

code:

while  [ $pid ]; do
pid=$(getPID)
#if server App is down start it!
if [ -z "$pid" ]; then
        echo -e "`date` [INFO]: watchDog activated -> starting service since was been deteced as down!\n" >> $watchDogLogger 2>$1
        startApp > /dev/null 2>$1
        pid=$(getPID)
fi
done

问题是当用户使用watchDog(看门狗启动)启动应用程序时因为while循环控制台“卡住”而我无法继续使用它 . 我知道我不能将watchDog作为后台作业运行(watchDog start&),然后让控制台恢复,但它让我烦恼,因为当我想要停止它(watchDog stop)它确实会停止应用程序但是第一个watchDop job(watchDog start)仍然有效 .

有没有其他方法来启动watchDog并恢复康复?

谢谢!