Eu percebi isso. Tem algo a ver com o uso de ps. Eu acho que quando você chama o comando "service iperf status", o ps sempre encontrará um processo com iperf nele. Portanto, o valor sempre será "1" e nunca será mais. Então usei o netstat para encontrar o processo. No meu script estou usando:
IS_RUNNING=$(netstat -anp | grep ":5001" | grep "iperf" | awk '{print $7}' | cut -d"/" -f 2)
O qual, se rodando, resultará nesse comando encontrando "iperf"
Então você faz a declaração if assim:
if [ "$IS_RUNNING" = iperf ];
E isso resolveu meu problema.