创建shell脚本:run.sh
tip:脚本和jar在同级目录
#!/bin/bash
#定义jar数组,需要按需修改
jarArr=(A.jar B.jar C.jar )
len=${#jarArr[*]}
case "$1" in
start)
for ((i=0;i<len;i++))
do
jarName=${jarArr[i]};
nohup java -jar $jarName >/dev/null 2>&1 &
done
;;
stop)
for ((i=0;i<len;i++))
do
jarName=${jarArr[i]};
tmpPid=`ps -ef |grep $jarName |grep -v "grep" | awk '{print $2}'`
if [ $tmpPid ]; then
kill -9 $tmpPid
else
echo -e "$jarName包进程不存在,无须停止\\n"
fi
done
;;
restart)
$0 stop
sleep 10
$0 start
echo "【 所有jar包重启完成】"
;;
status)
for ((i=0;i<len;i++))
do
jarName=${jarArr[i]};
tmpPid=`ps -ef | grep $jarName | grep -v "grep" | awk '{print $2}'`
if [ ! $tmpPid ]; then
echo -e "【$jarName jar包 运行异常】\\n"
else
record=`ps -ef|grep -v grep|grep $jarName`
port=$(ss -ntlp|grep $(echo $record|awk '{print $2}') |sed -r "s#.*:::([0-9]{3,5}).*#\1#g");
echo -e "【$jarName jar包 运行正常,pid为 $tmpPid,port为 $port】\\n"
fi
done
;;
esac
exit 0
授权
chmod +x run.sh
执行脚本
+ 启动: ./run.sh start
+ 停止: ./run.sh stop
+ 查看状态: ./run.sh status
+ 重启: ./run.sh restart