To make it easier to debug and see that the result is really what you are expecting, assign the result of ps -eaf | grep -c "cleanx"
to a variable, then test the variable. I suspect it is evaluating to null or less than 2 right off the bat, which would cause the test to return false, thus skipping the loop. So, print it out before testing it so you know for sure. Something like this:
cleanx_count=$(ps -eaf | grep -c "cleanx")
printf "Cleanx_count: %d/n" ${cleanx_count}
while [[ ${cleanx_count} -ge 2 ]]