• shell执行jar包相关操作指南


    第一次完整的写shell脚本,之前都是写一些简单的操作。
    关于微服务jar包的启动,停止,重启,全部启动,全部停止,全部重启以及修改jar包内文件后启动的相关脚本
    稍微记录下:

    cd /opt/micro-service/
    
    #输入要进行的操作,启动jar
    echo "you need todo?(start/stop/status/restart/startAll/stopAll/restartAll/upstart)"
    read todo
    
    #检查程序是否在运行
    is_exist(){
      pid=`ps -ef|grep $jarName|grep -v grep|awk '{print $2}'`
      #如果不存在返回1,存在返回0     
      if [ -z "${pid}" ]; then
       return 1
      else
        return 0
      fi
    }
    
    #修改启动
    upstart(){
      #输入要操作的jar包
      echo "Please Input jar Name:(servcie/servcie.jar)"
      read jarName
    
      is_exist
      if [ $? -eq 0 ]; then
        echo "${jarName} is already running. please stop"
      else
        jar tvf $jarName |grep $fileName
        #选择正确的文件路径进行修改
        echo "Query out as follows,Please select the copy you want"
        read oldFilePath
        #解压jar内文件
        jar xvf $jarName $oldFilePath
        sleep 1
        #输入jar外替换文件路径
        echo "Please Input replace file path:(like:config/config.properties)"
        read newFilePath
        #替换文件
        cp $newFilePath $oldFilePath
        echo "Replace success!"
        #压缩回jar内
        jar uvf $jarName $oldFilePath
        sleep 2
        #启动
        java -jar $jarName &
      fi
    }
    
    #启动
    start(){
      #输入要操作的jar包
      echo "Please Input jar Name:(servcie/servcie.jar)"
      read jarName
      is_exist
      if [ $? -eq 0 ]; then
        echo "${jarName} is already running. pid=${pid}"
      else
        java -jar $jarName &
      fi
    }
    
    #停止
    stop(){
      #输入要操作的jar包
      echo "Please Input jar Name:(servcie/servcie.jar)"
      read jarName
      is_exist
      if [ $? -eq "0" ]; then
        kill -9 $pid
        ps -ef|grep java
      else
        echo "${jarName} is not running"
      fi 
    }
    
    #状态
    status(){
      #输入要操作的jar包
      echo "Please Input jar Name:(servcie/servcie.jar)"
      read jarName
      is_exist
      if [ $? -eq "0" ]; then
        echo "${jarName} is running. Pid is ${pid}"
      else
        echo "${jarName} is NOT running."
      fi
    }
    
    #重启
    restart(){
      #输入要操作的jar包
      echo "Please Input jar Name:(servcie/servcie.jar)"
      read jarName
      stop
      sleep 5
      start
    }
    
    #全部启动
    startAll(){
      for FILENAME in $(ls *jar);
      do 
        pkill -9 $FILENAME
      done
    }
    
    #全部停止
    stopAll(){
      for FILENAME in $(ls *jar);
      do 
        pid=`ps -ef|grep $FILENAME|grep -v grep|awk '{print $2}'`
        java -jar $pid & ; 
      done
    }
    
    #全部重启
    restartAll(){
      stopAll
      sleep 10
      startAll
    }
    
    case $todo in
      start)
        start
        ;;
      stop)
        stop
        ;;
      status)
        status
        ;;
      restart)
        restart
        ;;
      startAll)
        startAll
        ;;
      stopAll)
        stopAll
        ;;
      restartAll)
        restartAll
        ;;
    esac
    
    
  • 相关阅读:
    关于近期对于移动端开发的一些看法
    前端加密
    移动开发小知识大全
    介绍下京东的(选项卡中的选项卡)是怎么实现的
    一样的代码,一样的逻辑,不一样的效果(选项卡和轮播图)
    总结一下meta标签
    cookie的使用
    移动端常用代码
    上拉加载实现
    关于jQuery出现的新添加元素点击事件无效
  • 原文地址:https://www.cnblogs.com/bbbing/p/11011408.html
Copyright © 2020-2023  润新知