linux编写脚本启动与停止jar服务

编写如下脚本,定义jar包路径及集合,循环开启脚本并逐一指定端口
关闭时亦循环遍历jar集合,根据jar包文件名获得对应的pid并kill -9关闭进程

#!/bin/sh

# jar包数组
JARS=(op1.jar op2.jar op3.jar op4.jar)
# jar包路径
JAR_PATH='/opt/op'

start() {
  local JAR_NAME=
  local PORT=
  for((i=0;i<${#JARS[@]};i++));
  do
    JAR_NAME=${JARS[$i]}
    PORT=$((8080+$i))
	exec nohup java -jar $JAR_PATH/$JAR_NAME --server.port=$PORT &
	echo "$JAR_NAME已启动,运行在端口$PORT"
  done
}

stop() {
  local JAR_NAME=
  for((i=0;i<${#JARS[@]};i++));
  do
    JAR_NAME=${JARS[$i]}
	ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}' | xargs kill -9
	echo "运行在端口$PORT的$JAR_NAME已停止"
  done
}

case "$1" in
  start)
    start
  ;;
  stop)
    stop
  ;;
esac	

猜你喜欢

转载自blog.csdn.net/qq_24516549/article/details/84451790