zoukankan      html  css  js  c++  java
  • java后台服务器启动脚本

    最近由于经常在项目上线或者调试中启动服务,由于要设置环境变量这些,所以为了方便写了个启动脚本,希望能够帮助大家,也算是给自己做个小笔记:

    example_project_start.sh:

    # /bin/bash
    # Author
    # Date: 2019-04-15
    # Usage: ./example_project.sh $1 [$ENV]
    
    Usage() {
      echo "command format: "$0" start|restart|stop [debug]"
    }
    
    if [ $# -lt 1 ]; then
      Usage
      exit 1
    fi
    
    prj_path=`cd $(dirname $0)/../; pwd`
    cd $prj_path
    
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$prj_path/lib
    
    export LD_LIBRARY_PATH
    
    ENV=$2
    [[ -z $ENV ]] && ENV="test" 
    
    binary="example_project"
    basedir="/export/servers/example_project"
    identification="/export/servers/example_project/target"
    
    jar_name="$basedir/target/example_project.jar"
    cfg="$basedir/config"
    
    function GetProcNum () {
      proc_num=`ps -ef|grep "${identification}"|grep "${basedir}"|grep -v " grep "|grep -v " vi "|grep -v " vim "|grep -v " tail "|wc -l`
    }
    
    function Release() {
    
      nohup java -Dfile.encoding=utf-8 -Dcfg=$cfg -jar $jar_name $ENV 1>out 2>&1 &
    
    }
    
    function Stop () {
      GetProcNum
      if [ $proc_num == 0 ]; then
        echo "${binary} stop successfully."
      else
        echo "${binary} is stopping ..."
        `ps -ef|grep "${identification}"|grep "${basedir}"|grep -v " grep "|grep -v " vi "|grep -v " vim "|grep -v " tail " > $basedir/stop.tmp`
    
        while read line
        do
          proc_id=`echo $line|awk -F' ' '{print $2}'`
          kill  -15 ${proc_id}
          sleep 5
        done < $basedir/stop.tmp
        while [ 1 -eq 1 ]; do
          sleep 5
          GetProcNum
          if [ $proc_num == 0 ]; then
            echo "${binary} stop successfully."
            break
          else
            echo "${binary} stop stopping!"
          fi
        done
      fi
    }
    
    function Start() {
      GetProcNum
      if [ $proc_num == 0 ]; then
        echo "${binary} is starting ..."
        
        Release $ENV
    
        sleep 2
        GetProcNum
    
        if [ $proc_num == 0 ]; then
          echo "${binary} start Failed!"
          exit 1
        else
          echo "${binary} start OK!"
        fi
    
      else
        echo "${binary} is already running now."
      fi
    }
    
    if [ "$1" == 'start' ]; then
      Start "$2"
    elif [ "$1" == 'restart' ]; then
      Stop
      Start "$2"
    elif [ "$1" == 'stop' ]; then
      Stop
    else
      Usage
    fi

    转载请注明出处:https://www.cnblogs.com/fnlingnzb-learner/p/10713590.html

  • 相关阅读:
    confluence重置admin密码
    oracle 11g密码永不过期
    GCC编译器使用
    Emacs常用命令汇总
    bash shell命令(1)
    进程管理3--经典的进程同步问题
    进程管理2--进程的同步与信号量
    C安全问题与指针误用
    C迷途指针
    进程管理1--进程的概念与操作
  • 原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/10713590.html
Copyright © 2011-2022 走看看