背景
公司项目是spring cloud eureka微服务系列的架构,在内网环境linux上需要一键启动/停止多个jar包。考虑到.sh文件的执行,仅供参考,有其他方案的同学请留言告知,在此先感谢了!
代码
1.一键启动/停止多个jar
启动:./java.sh start
停止:./java.sh stop
重启:./java.sh restart
java.sh代码:
#!/bin/sh
export EUREKA=eureka-0.0.1-SNAPSHOT.jar
export GZGL=gzgl-server-0.0.1-SNAPSHOT.jar
export COLLECTER=ww-collecter-1.0.0-SNAPSHOT.jar
export WWZS=ROOT.war
export ZDMB=zdmb-server-0.0.1-SNAPSHOT.jar
export XTSZ=xtsz-server-0.0.1-SNAPSHOT.jar
export QBSJ=qbsj-server-0.0.1-SNAPSHOT.jar
export FILE=file-server-0.0.1-SNAPSHOT.jar
export PTAQ=ptaq-server-0.0.1-SNAPSHOT.jar
export QYXZ=qyxz-server-0.0.1-SNAPSHOT.jar
export FXPG=fxpg-server-0.0.1-SNAPSHOT.jar
export OPEN=open-server-0.0.1-SNAPSHOT.jar
export EUREKA_port=8081
export GZGL_port=8082
export COLLECTER_port=8083
export WWZS_port=8084
export ZDMB_port=8085
export XTSZ_port=8086
export QBSJ_port=8087
export FILE_port=8088
export PTAQ_port=8089
export QYXZ_port=8090
export FXPG_port=8091
export OPEN_port=8092
case "$1" in
start)
## 启动eureka
echo "--------eureka 开始启动--------------"
nohup java -jar $EUREKA >/dev/null 2>&1 &
EUREKA_pid=`lsof -i:$EUREKA_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$EUREKA_pid" ]
do
EUREKA_pid=`lsof -i:$EUREKA_port|grep "LISTEN"|awk '{print $2}'`
done
echo "EUREKA pid is $EUREKA_pid"
echo "--------eureka 启动成功--------------"
## 启动GZGL
echo "--------开始启动GZGL---------------"
nohup java -jar $GZGL >/dev/null 2>&1 &
GZGL_pid=`lsof -i:$GZGL_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$GZGL_pid" ]
do
GZGL_pid=`lsof -i:$GZGL_port|grep "LISTEN"|awk '{print $2}'`
done
echo "GZGL pid is $GZGL_pid"
echo "---------GZGL 启动成功-----------"
## 启动COLLECTER
echo "--------开始启动COLLECTER---------------"
nohup java -jar $COLLECTER >/dev/null 2>&1 &
COLLECTER_pid=`lsof -i:$COLLECTER_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$COLLECTER_pid" ]
do
COLLECTER_pid=`lsof -i:$COLLECTER_port|grep "LISTEN"|awk '{print $2}'`
done
echo "COLLECTER pid is $COLLECTER_pid"
echo "---------COLLECTER 启动成功-----------"
## 启动ZDMB
echo "--------开始启动ZDMB---------------"
nohup java -jar $ZDMB >/dev/null 2>&1 &
ZDMB_pid=`lsof -i:$ZDMB_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$ZDMB_pid" ]
do
ZDMB_pid=`lsof -i:$ZDMB_port|grep "LISTEN"|awk '{print $2}'`
done
echo "ZDMB pid is $ZDMB_pid"
echo "---------ZDMB 启动成功-----------"
## 启动XTSZ
echo "--------开始启动XTSZ---------------"
nohup java -jar $XTSZ >/dev/null 2>&1 &
XTSZ_pid=`lsof -i:$XTSZ_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$XTSZ_pid" ]
do
XTSZ_pid=`lsof -i:$XTSZ_port|grep "LISTEN"|awk '{print $2}'`
done
echo "XTSZ pid is $XTSZ_pid"
echo "---------XTSZ 启动成功-----------"
## 启动QBSJ
echo "--------开始启动QBSJ---------------"
nohup java -jar $QBSJ >/dev/null 2>&1 &
QBSJ_pid=`lsof -i:$QBSJ_port|grep "LISTEN"|awk '{print $2}'`
until [ -n "$QBSJ_pid" ]
do
QBSJ_pid=`lsof -i:$QBSJ_port|grep "LISTEN"|awk '{print $2}'`
done
echo "QBSJ pid is $QBSJ_pid"
echo "---------QBSJ 启动成功-----------"
## 启动FILE
echo "--------开始启动FILE---------------"
nohup java -jar $FILE >/dev/null 2>&1 &
FILE_pi