• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux下shell通用脚本启动jar(微服务)

    vim app_jar.sh

    #!/bin/bash
    #source /etc/profile
    # Auth:Liucx
    # Please change these parameters according to your real env.
    # set Java Home: Remember that dolphin only supports JDK8!
    JAVA_HOME=/usr/java/jdk1.8.0_162
    # application directory
    cd `dirname $0`
    APP_HOME=`pwd`
    APP_NAME="`cd ${APP_HOME}  find -name '*.jar' `"
    JAR_HOME=`pwd |awk -F"/" '{print $NF}'`
    # Java JVM lunch parameters
    if [ x"$JAVA_MEM_OPTS" == x ];then
      JAVA_MEM_OPTS="-server -Xms512m -Xmx512m -Xmn128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
    fi
    # waiting timeout for starting, in seconds
    START_WAIT_TIMEOUT=30
    psid=0
    checkpid() {
      javaps=`$JAVA_HOME/bin/jps -l | grep "$JAR_HOME"`
      if [ -n "$javaps" ]; then
       psid=`echo $javaps | awk '{print $1}'`
      else
       psid=0
      fi
    }
    start() {
      checkpid
      if [ $psid -ne 0 ]; then
       echo "================================"
       echo "warn: $APP_NAME already started! (pid=$psid)"
       echo "================================"
      else
       echo -n "Starting $APP_NAME ..."
       #-Dspring.profiles.active=dev 指定环境
       nohup $JAVA_HOME/bin/java -jar -Dspring.profiles.active=dev -DCONFIG_ENABLE=true $JAVA_MEM_OPTS ${APP_NAME} >${JAR_HOME}.log 2>1   
       checkpid
       if [ $psid -ne 0 ]; then
         echo "(pid=$psid) [OK]"
       else
         echo "[Failed]"
       fi
      fi
    }
    stop() {
      sleep 2
      checkpid
      if [ $psid -ne 0 ]; then
       echo -n "Stopping $APP_NAME ...(pid=$psid) "
       #kill -9 $psid
       kill -9 $psid
       if [ $? -eq 0 ]; then
         echo "[OK]"
       else
         echo "[Failed]"
       fi
    #   checkpid
    #   if [ $psid -ne 0 ]; then
    #     stop
    #   fi
      else
       echo "================================"
       echo "warn: $APP_NAME is not running"
       echo "================================"
      fi
    }
    status() {
      checkpid
      if [ $psid -ne 0 ]; then
       echo "$APP_NAME is running! (pid=$psid)"
      else
       echo "$APP_NAME is not running"
      fi
    }
    info() {
      echo "System Information:"
      echo "****************************"
      echo `head -n 1 /etc/issue`
      echo `uname -a`
      echo
      echo "JAVA_HOME=$JAVA_HOME"
      echo `$JAVA_HOME/bin/java -version`
      echo
      echo "APP_HOME=$APP_HOME"
      echo "APP_NAME=$APP_NAME"
      echo "****************************"
    }
    case "$1" in
      'start')
       start
       ;;
      'stop')
       stop
       ;;
      'restart')
       stop
       echo "You restart the application ..."
       start #
       ;;
      'status')
       status
       ;;
      'info')
       info
       ;;
     *)
       echo "Usage: $0 {start|stop|restart|status|info}"
       exit 1
    esac

    使用方式:

    app_jar.sh start
    app_jar.sh stop
    app_jar.sh restart

    注:该脚本只需要放在jar包当前目录下即可,脚本当前目录只允许存在一个jar包,如果多个会同时启动或重启

    还需提醒下:启动的jar包名主体不能改变,防止脚本无效。目前正在公司生产环境使用中,希望您纠正,提出建议。

    总结

    以上所述是小编给大家介绍的Linux下shell通用脚本启动jar,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    您可能感兴趣的文章:
    • Xshell5连接虚拟机中的Linux的方法以及失败原因解决
    • 用xshell连接VMware中的Linux的方法步骤(2种)
    • linux shell 根据进程名获取pid的实现方法
    • linux shell 中判断文件、目录是否存在的方法
    • Linux shell 提取文件名和目录名的方法
    • Linux利用Shell脚本部署jar包项目的完整步骤
    • Linux配置SSH和Xshell连接服务器的教程(图解)
    • Linux使用shell脚本定时删除历史日志文件
    上一篇:linux下数据压缩的几种方法与查看方式(示例代码)
    下一篇:开发者常用及实用Linux Shell命令备忘录(小结)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux下shell通用脚本启动jar(微服务) Linux,下,shell,通用,脚本,