优秀的jar包启动shell脚本收藏

#!/usr/bin/env bash
#jar包名称
server_name="service-switch-0.0.1-SNAPSHOT"
log_name="service-switch"

status() {
          
   
  if [[ -n $(ps -ef | grep -v grep | grep ${
           
    server_name} | sed -n 1P | awk {print $2}) ]]; then
    echo -e "33[36m ##: 正常运行中~ 33[0m"
  else
    echo -e "33[31m 已经停止 33[0m"
  fi
}

start() {
          
   
  export SW_AGENT_INSTANCE_NAME=${log_name}
  export SW_AGENT_NAME=${server_name}
  if [[ -z $(ps -ef | grep -v grep | grep ${
           
    server_name} | sed -n 1P | awk {print $2}) ]]; then
    #    停止了
    nohup java -javaagent:/home/skywalking/skywalking-agent/skywalking-agent.jar -jar ${server_name}.jar  >>${log_name}.log &
    if [[ -n $(ps -ef | grep -v grep | grep ${
           
    server_name} | sed -n 1P | awk {print $2}) ]]; then
      echo -e "33[36m ##: 启动成功~ 33[0m"
	  tail -f ${log_name}.log
    else
      echo -e "33[31m 启动失败 33[0m"
    fi
  else
    echo -e "33[32m ##: 服务已经在运行中... 33[0m"
  fi

}

stop() {
          
   
  ps -ef | grep -v grep | grep ${server_name} | sed -n 1P | awk {print $2} | xargs kill -9
  if [[ -z $(ps -ef | grep -v grep | grep ${
           
    server_name} | sed -n 1P | awk {print $2}) ]]; then
    echo -e "33[32m ##: 已停止... 33[0m"
  fi
}

main() {
          
   

  if [ ! -f ${server_name}".jar" ]; then
    echo -e "33[31m 当前目录不存在  ${server_name}.jar  文件 33[0m"
  else
#    存在文件
    echo -e "33[42;30m ###[ 控制台 ]### 33[0m"
    echo -e "33[32m 0. 33[0m 启动服务"
    echo -e "33[32m 1. 33[0m 停止服务"
    echo -e "33[32m 2. 33[0m 查看服务状态"
    echo -e "33[32m 3. 33[0m 重启服务"

    read -p "请输入数字0-2的选项,回车确认: " choose
    case $choose in
    0)
      start
      ;;
    1)
      stop
      ;;
    2)
      status
      ;;
    3)
      stop
      start
      ;;
    *)
      echo -e "33[31m 请输入合法的数字 33[0m"
      ;;
    esac
  fi

}

main
经验分享 程序员 微信小程序 职场和发展