#!/bin/bash
cd `dirname $0`
APP_NAME=`ls *.jar`
case $1 in
start)
echo -e "Starting the $APP_NAME ...\c"
if [ ! -d logs ]; then
mkdir logs
fi
source /etc/profile
nohup java -jar $APP_NAME --spring.profiles.active=prod > logs/stdout.log 2>&1 &
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
COUNT=`ps -f | grep java | grep $APP_NAME | awk '{print $2}' | wc -l`
if [ $COUNT -gt 0 ]; then
break
fi
done
echo "OK!"
PIDS=`ps -f | grep java | grep $APP_NAME | awk '{print $2}'`
echo "PID: $PIDS"
;;
stop)
PIDS=`ps -ef | grep java | grep $APP_NAME |awk '{print $2}'`
if [ -z $PIDS ]; then
echo "ERROR: The $APP_NAME does not started!"
exit 1
fi
echo -e "Stopping the $APP_NAME ...\c"
for PID in $PIDS ; do
kill $PID > /dev/null 2>&1
done
COUNT=0
while [ $COUNT -lt 1 ]; do
echo -e ".\c"
sleep 1
COUNT=1
for PID in $PIDS ; do
PID_EXIST=`ps -f -p $PID | grep java`
if [ -n "$PID_EXIST" ]; then
COUNT=0
break
fi
done
done
echo "OK!"
echo "PID: $PIDS"
;;
restart)
shift
"$0" stop ${@}
sleep 3
"$0" start ${@}
;;
status)
PIDS=`ps -ef | grep java | grep $APP_NAME |awk '{print $2}'`
if [ -z "$PIDS" ]; then
echo "The $APP_NAME does not started!"
exit 1
fi
echo "OK!"
echo "PID: $PIDS"
;;
*)
echo "Usage: $0 {start|stop|restart|status}" >&2
esac
脚本启动springboot应用
命名为server.sh
参数:start|stop|restart|status
将脚本跟jar放在一个新建的项目(一项目一文件夹)文件夹中