一 问题

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

二 方案

myshell.sh

  #!/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  #绝对路径

Corwien
6.3k 声望1.6k 粉丝

为者常成,行者常至。