jar文件,快捷启动shell脚本

stop.sh

pid=$(ps -ef | grep admin-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}')
if [ -z $pid ];then
    echo "服务未启动"
else
    echo "服务已停止"
    kill -9 $pid
fi
echo ""




start.sh

pid=$(ps -ef | grep admin-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}')
# -z 表示为空
if [ -z $pid ]; then
    nohup java -Dloader.path=lib/ -jar admin-demo-0.0.1-SNAPSHOT.jar >out.log 2>&1 &
    pid=$(ps -ef | grep admin-demo-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}')
    echo "服务已启动!pid:${pid}"
else
    echo "服务已在运行中"
fi

 

 

转载别人  ↓

#!/bin/sh
# 定义变量
JAR_NAME="$2.jar"
# 监听端口
ADD_PORT="$3"
# help获取使用方法
help() {
  echo ""
  echo "please use command: sh start.sh [start|stop|restart|status|debug] [version] || [ADD_PORT]"
  echo "For example: sh start.sh start 1.0.1"
  echo "debug For example: sh start.sh debug demo1.0 | sh start.sh debug demo1.0 6156"
  echo ""
  exit 1
}
# 该方法会重新启动程序
debug() {
  # 查看pid,先杀掉,再运行jar
  pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
  # 设置默认监听端口
  if [ -z $ADD_PORT ]; then
    ADD_PORT="51135"
    echo "......default Listen on port for DEBUG:${ADD_PORT}"
  fi
  # -z 表示为空
  if [ ! -z $pid ]; then
    kill -9 $pid
    echo ""
    echo "......kill -9 ${pid}....."
    nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$ADD_PORT -Dloader.path=lib/ -jar $JAR_NAME >debugOut.log 2>&1 &
    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
    echo ""
    echo "debug Service ${JAR_NAME} is starting!newPid:${pid}, Listen on port:${ADD_PORT}"
    echo "......debug restart: success......"
    echo ""
  else 
    nohup java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$ADD_PORT -Dloader.path=lib/ -jar $JAR_NAME >debugOut.log 2>&1 &
    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
    echo ""
    echo "debug Service ${JAR_NAME} is starting!pid:${pid}, address:${ADD_PORT}"
    echo "......debug Start: success......"
    echo ""
  fi
}
# 启动方法
start() {
  # 重新获取一下pid
  pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
  # -z 表示为空
  if [ -z $pid ]; then
    nohup java -Dloader.path=lib/ -jar $JAR_NAME >out.log 2>&1 &
    pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
    echo ""
    echo "Service ${JAR_NAME} is starting!pid:${pid}"
    echo ".........Start success........"
  else
    echo ""
    echo "Service ${JAR_NAME} is already running,it's pid:${pid}. If necessary."
    echo "please use command:[sh start.sh stop [version] | sh start.sh restart [version]]."
    echo ""
  fi
}

# 停止方法
stop() {
  # 重新获取一下pid
  pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
  # -z 表示为空
  if [ -z $pid ]; then
    echo ""
    echo "Service ${JAR_NAME} is not running!"
    echo ""
  else
    kill -9 $pid
    echo ""
    echo "Service stop success!pid:${pid}"
    echo ""
  fi
}

# 输出运行状态方法
status() {
  # 重新获取一下pid
  pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
  # -z 表示为空
  if [ -z $pid ]; then
    echo ""
    echo "Service ${JAR_NAME} is not running!"
    echo ""
  else
    echo ""
    echo "Service ${JAR_NAME} is running. It's pid=${pid}"
    echo ""
  fi
}

# 重启方法
restart() {
  echo ".................Restarting................."
  pid=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}')
  # -z 表示为空
  if [ ! -z $pid ]; then
    kill -9 $pid
  fi
  start
  echo ""
}

# 根据输入参数执行对应方法
case "$1" in
"start")
  start
  ;;
"stop")
  stop
  ;;
"status")
  status
  ;;
"restart")
  restart
  ;;
"-h")
  help
  ;;
"debug")
  debug
  ;;
esac

 

posted @ 2022-11-24 16:55  Devan.Yan  阅读(112)  评论(0编辑  收藏  举报