diff --git a/datamover/dist/datamover.sh b/datamover/dist/datamover.sh index 68cf7a636b8588efdced59900ac67bc25d3bc948..04f2c4b92bc65dc661d86b073d6f46ddd1964981 100755 --- a/datamover/dist/datamover.sh +++ b/datamover/dist/datamover.sh @@ -19,7 +19,7 @@ awkBin() isPIDRunning() { if [ "$1" = "" ]; then - return 0 + return 1 fi # This will have a return value of 0 on BSDish systems isBSD="`ps aux > /dev/null 2>&1; echo $?`" @@ -150,13 +150,23 @@ case "$command" in n=0 while [ $n -lt $MAX_LOOPS ]; do sleep 1 + if [ ! -e $PIDFILE ]; then + break + fi + if [ -s $STARTUPLOG ]; then + PID=`cat $PIDFILE 2> /dev/null` + isPIDRunning $PID + if [ $? -ne 0 ]; then + break + fi + fi grep "$SUCCESS_MSG" $LOGFILE > /dev/null 2>&1 if [ $? -eq 0 ]; then break fi n=$(($n+1)) done - PID=`cat $PIDFILE` + PID=`cat $PIDFILE 2> /dev/null` isPIDRunning $PID if [ $? -eq 0 ]; then grep "$SUCCESS_MSG" $LOGFILE > /dev/null 2>&1 @@ -166,7 +176,7 @@ case "$command" in echo "(pid $PID)" fi else - rm $PIDFILE + test -e $PIDFILE && rm $PIDFILE echo "FAILED" echo "startup log says:" cat $STARTUPLOG