Run your script manually, and when it returns to command prompt, type "exit", or press Control-D and see what happens.
When you run su like you are, it will fork a new shell (and wait for input). When you exit this shell it'll continue with the rest of the script (as root).
(you mention a user called net1, but your script shows a user called netmon)
ps -ax > process.txt
grep "CMIS_STACK" process.txt
if [ $? -ne 0 ]; then
date > error.log
echo "CMIS_STACK not running" >> error.log
su - net1 -c "nohup /net1/bin/CMIS_STACK &"
echo "process startted successfully" >> error.log
fi
You should also probably run this with "su -" not just "su".
The "process started successfully" line is meaningless for a number of reasons. Mainly because a) you never test the result after starting the CMIS_STACK program, and b) when you run it in the background a new process is forked and it's unlikely anything wrong will happen before you could test it.