zoukankan      html  css  js  c++  java
  • Linux Shell脚本启动jar、关闭jar

    Linux Shell脚本启动jar、关闭jar

    • 启动脚本
    #!/bin/sh
    cd /usr/local/javaWeb
    # 将app.jar 修改为自己的jar包名
    nohup java -jar app.jar &
    exit 0
    
    • 关闭脚本
    #!/bin/sh
    # 将app.jar修改为自己的jar包名
    PID=$(ps -ef | grep app.jar | grep -v grep | awk '{ print $2 }')
    if [ -z "$PID" ]
    then
    echo app is already stopped
    else
    echo kill $PID
    kill $PID
    fi
    
    • 牛逼PLUS版本的脚本
      最后修改时间2020年11月19日11:39:04
    #!/bin/bash
    #这里可替换为你自己的jdk安装路径
    JAVA_HOME=/usr/local/jdk1.8.0_51
    
    #这里可替换为你自己的执行程序,其他代码无需更改
    
    APP_NAME=/usr/local/small-shop/pconline-bjshop-api-1.0.0-release.jar
    #使用说明,用来提示输入参数
    usage() {
        echo "Usage: sh deploy.sh [start|stop|restart|status]"
        exit 1
    }
    
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`
      #如果不存在返回1,存在返回0     
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
    
    #启动方法
    start(){
      is_exist
      if [ $? -eq 0 ]; then
        echo "${APP_NAME} is already running. pid=${pid}"
      else
        nohup ${JAVA_HOME}/bin/java -Djava.security.egd=file:/dev/./urandom -server -Xms512m -Xmx1024m -Xss512k -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -jar ${APP_NAME}  >log.out 2>&1 &
      fi
    }
    
    #停止方法
    stop(){
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
      else
        echo "${APP_NAME} is not running"
      fi  
    }
    
    #输出运行状态
    status(){
      is_exist
      if [ $? -eq "0" ]; then
        echo "${APP_NAME} is running. Pid is ${pid}"
      else
        echo "${APP_NAME} is NOT running."
      fi
    }
    
    #重启
    restart(){
      stop
      sleep 5
      start
    }
    
    #根据输入参数,选择执行对应方法,不输入则执行使用说明
    case "$1" in
      "start")
        start
        ;;
      "stop")
        stop
        ;;
      "status")
        status
        ;;
      "restart")
        restart
        ;;
      *)
        usage
        ;;
    esac
    
    
  • 相关阅读:
    控制结构(Scala)
    《基于Spark的大数据访存行为跨层分析工具》学习笔记
    函数式对象(Scala)
    心脏病预测(SVM模型)
    类、对象、基础类型、操作(Scala)
    ElementUI对话框(dialog)提取为子组件
    ElementUI+命名视图实现复杂顶部和左侧导航栏
    ElementUI 复杂顶部和左侧导航栏实现
    Vue页面手动刷新,导航栏激活项还原到初始状态问题解决方案
    elementUI动态数据表格(带分页)
  • 原文地址:https://www.cnblogs.com/cnsyear/p/13915151.html
Copyright © 2011-2022 走看看