I have a main script that I'm running, and from it I have a second "slow process" I want to kick off, and "do something" in the main script if it doesn't complete in the time limit -- depending on if it completed or not. N.B. If the "slow process" finishes before my time limit, I don't want to have to wait an entire time limit.
I want the "slow process" to keep going so I can gather stats and forensics about it's performance.
I've looked into using timeout, however it will kill my script when finished.
Suppose this simplified example.
result=`timeout 3 ./slowprocess.sh` if [ "$result" = "Complete" ] then echo "Cool it completed, do stuff..." else echo "It didn't complete, do something else..." fi
#!/bin/bash start=`date +%s` sleep 5 end=`date +%s` total=`expr $end - $start` echo $total >> /tmp/performance.log echo "Complete"
Here, it uses timeout -- so the script dies, so nothing winds up in
/tmp/performance.log -- I want
slowprocess.sh to complete, but, I want
main.sh to go onto its next step even if it doesn't finish in the 3 seconds.