flyzy博客
分享便宜VPS与网络优惠
搬瓦工

请教各位MJJ大佬一个编写shell的问题

我设想的功能:

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

求助各位MJJ大雕

我的第1和第2步的 代码:
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 &复制代码

浙江省网友说

山西省网友说:java啊,看来你学艺不精,用jps

海南省网友说:你这,在启动进程命令后面,直接再重复一遍上面的检测进程代码不就行了么?(检测刚刚运行的程序进程

还是说我理解错你的意思了?

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 &         sleep 2s         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 “启动成功…”         else             echo -e “启动失败…”         fi     fi }复制代码

赞(0) 打赏
关注我们
未经允许不得转载:flyzy博客 » 请教各位MJJ大佬一个编写shell的问题
分享到: 更多 (0)

这是一种鼓励

支付宝扫一扫打赏

微信扫一扫打赏