#!/bin/sh
#jar package name
JAR_NAME=project.jar
#jvm options
VM_OPTIONS=""
#spring params
SPRING_PARAMS=""
#set options
setOpt(){
if [ -n "${1}" ] ; then
opt=${1:0:3}
value=${1:3}
case $opt in
-v=)
VM_OPTIONS=${value}
;;
-p=)
SPRING_PARAMS=${value}
;;
esac
fi
}
#get process
isExist(){
pid=`ps -ef | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'`
if [ -z "${pid}" ]; then
return 0
else
return 1
fi
}
#start method
start(){
isExist
if [ $? -eq "0" ]; then
echo "project is starting ..."
nohup java -jar ${VM_OPTIONS} ${JAR_NAME} ${SPRING_PARAMS} > ./start_nohup.log 2>&1 &
echo "project is success"
sleep 2
tail -f ./start_nohup.log
else
echo "project is running, pid=${pid}"
fi
}
#stop method
stop(){
isExist
if [ $? -eq "0" ]; then
echo "project is not running"
else
echo "project is running, pid=${pid}, will kill it"
kill -9 ${pid}
echo "project has been killed"
fi
}
#restart method
restart(){
stop
start
}
#get all parameters
for key in "$@"
do setOpt "${key}"
done
#jvm parameters
if [ -z "${VM_OPTIONS}" ] ; then
VM_OPTIONS=""
fi
#spring parameters
if [ -z "${SPRING_PARAMS}" ] ; then
SPRING_PARAMS=""
fi
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo -e "|---------------------------|--------required--------| |----------------not required----------------|"
echo -e "|---------------------------| ↓ | | ↓ |"
echo -e "such as : sh staff_start.sh [ start | stop | restart ] -v='-Xms512m -Xmx512m' -p='--server.port=8080'"
;;
esac