请教各位一个shell脚本的问题条件判断问题

我设想的功能:

1、先检测相关进程,若相关进程的PID存在,则提示进程已存在
2、若检测不到相关进程的PID,则执行启动命令
这两步我已经实现。
3、启动第2步的进程之后,再次检测进程
4、执行第3步的进程检测后,若进程存在,则发出成功提示,若进程不存在,则发出失败提示。

我目前的代码:

function start_namesrv() { NAMESRV_PID=`ps -ax | grep -v grep | grep java | grep -i 'org.apache.rocketmq.namesrv.NamesrvStartup' | awk '{print $1}'` if [[ -n ${NAMESRV_PID} ]];then echo -e "\033[1;42;37m +++ The RocketMQ_namesrv(${NAMESRV_PID}) is already exsit... \033[0m" else cd ${ROCKETMQ_BIN} nohup sh mqnamesrv -n ${ADDR}:${NAMESRV_PORT} > ${NAMESRV_RUN_LOG} 2>&1 & function start_namesrv() { NAMESRV_PID=`ps -ax | grep -v grep | grep java | grep -i 'org.apache.rocketmq.namesrv.NamesrvStartup' | awk '{print $1}'` if [[ -n ${NAMESRV_PID} ]];then echo -e "\033[1;42;37m +++ The RocketMQ_namesrv(${NAMESRV_PID}) is already exsit... \033[0m" else cd ${ROCKETMQ_BIN} # 如果 sleep 5 秒后,pid 不存在,将会报错 nohup sh mqnamesrv -n ${ADDR}:${NAMESRV_PORT} > ${NAMESRV_RUN_LOG} 2>&1 sleep 5 kill -0 $! if [ $? -ne 0 ]; then echo 'start failure'; else echo 'start success'; fi } # 启动 start_namesrv