This script is quite helpful when you want to run the TCPSClient (beta 3) somewhat completely unattended.
If the program hangs up, fails or anything doesn’t work as expected the CPU load increased drastically. This is taken as an indicator and the TCPSClient will be terminated and restarted.
!/bin/bash PROCESSNAME=TCPSClient.bin CPU_USAGE_THRESHOLD=1010 declare -i MULTIPLIER=10 killall -v $PROCESSNAME sleep 3 while true; do if ps ax | grep -v grep | grep TCPSClient > /dev/null then CPU_TEMP_USAGE=$(top -bn1 |grep TCPSClient | awk -F' ' '{print $9}') CPU_USAGE=$(echo "scale=2;$CPU_TEMP_USAGE*$MULTIPLIER"|bc) CPU_INT=${CPU_USAGE%.*} if [ $CPU_INT -gt $CPU_USAGE_THRESHOLD ] ; then echo KILLING killall -v $PROCESSNAME sleep 3 fi else /home/pi/TCPSClient/TCPSClient.bin & sleep 3 fi done
This is one of the very few Linux scripts I did. Be gentle. Feel free to contact me if there are questions, suggestions, etc.