一个shell脚本实现应用启动|停止|重启|查看状态

一 问题

自己开发的程序,如何用shell 脚本实现 启动,关闭,重启,查看状态?

二 方案

  #!/bin/sh
    SERVICE="fm_tuoguan_shell"
    PROCESS_STATUS="fm"
    CMD="/developer/robot -s rpcs@node.abc.com:9902/1234567 -p admin@cn888"
 
    start(){
        echo "starting..."
        nohup $CMD > $SERVICE.log 2>&1 &  
        if [ $? -ne 0 ]
        then
            echo "start failed, please check the log!"
            exit $?
        else
            echo $! > $SERVICE.pid 
            echo "start success"
        fi
    }
    stop(){
        echo "stopping..."
        kill -9 `cat $SERVICE.pid`
        if [ $? -ne 0 ]
        then
            echo "stop failed, may be $SERVICE isn't running"
            exit $?
        else
            rm -rf $SERVICE.pid 
            echo "stop success"
        fi
    }
    restart(){
        stop&&start
    }
    status(){
        num=`ps -ef | grep $PROCESS_STATUS | grep -v grep | wc -l`
        if [ $num -eq 0 ]
        then
            echo "$SERVICE isn't running"
        else
            echo "$SERVICE is running"
        fi
    }
    case $1 in    
        start)      start ;;  
        stop)      stop ;;  
        restart)  restart ;;
        status)  status ;; 
        *)          echo "Usage: $0 {start|stop|restart|status}" ;;     
    esac  
 
    exit 0

设置可执行权限:

 chmod +x myshell.sh

执行:

> sh myshell.sh start  # 相对路径
starting...
start success
> sh /work/shelltask/myshell.sh start  #绝对路径

 当然也可用systemd实现:https://www.cnblogs.com/soymilk2019/p/14978460.html

 

原文:https://segmentfault.com/a/1190000022484370

posted @ 2021-07-06 18:47  豆浆D  阅读(566)  评论(0编辑  收藏  举报