#!/bin/bash
# 切换到目录 dirname $0 即是执行文件所在目录
cd `dirname $0`
CUR_SHELL_DIR=`pwd`
CUR_SHELL_NAME=`basename ${BASH_SOURCE}`
#修改这里jar包名即可
JAR_NAME=anti-fraud-investigation
JAR_PATH=$CUR_SHELL_DIR/$JAR_NAME.jar
#JAVA_MEM_OPTS=" -server -Xms128m -Xmx128m -XX:PermSize=64m -XX:MaxPermSize=128m -XX:MaxNewSize=128m"
JAVA_MEM_OPTS=""
#SPRING_PROFILES_ACTIV="-Dspring.config.location=config/application.yml,config/config.properties -Dloader.path=lib"
SPRING_PROFILES_ACTIV="-Dspring.config.location=config/application.yml,config/config.properties -Dloader.path=lib -server -noverify -Xms1024M -Xmx1024M -Xmn512M -Xss512k -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:MaxTenuringThreshold=5 -XX:CMSInitiatingOccupancyFraction=85 -XX:+CMSScavengeBeforeRemark -XX:SoftRefLRUPolicyMSPerMB=0 -verbose:gc -XX:+PrintGCDetails -Dfile.encoding=UTF-8 -XX:+HeapDumpOnOutOfMemoryError"
LOG_DIR=$CUR_SHELL_DIR/console-logs
LOG_PATH=$LOG_DIR/$JAR_NAME.out
echo_help()
{
echo -e "syntax: sh $CUR_SHELL_NAME start|stop|restart"
}
if [ -z $1 ];then
echo_help
exit 1
fi
if [ ! -d "$LOG_DIR" ];then
mkdir "$LOG_DIR"
fi
if [ ! -f "$LOG_PATH" ];then
touch "$LOG_DIR"
fi
if [ "$1" == "start" ];then
PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_NAME | awk '{print $2}'`
if [ -n "$PIDS" ]; then
echo -e "启动失败:, $JAR_NAME 服务已被启动,PID为: $PIDS"
exit 1
fi
echo "启动 $JAR_NAME 服务..."
# start
nohup java $JAVA_MEM_OPTS -jar $SPRING_PROFILES_ACTIV $JAR_PATH >> $LOG_PATH 2>&1 &
COUNT=0
while [ $COUNT -lt 1 ]; do
sleep 1
COUNT=`ps --no-heading -C java -f --width 1000 | grep $JAR_PATH | awk '{print $2}' | wc -l`
if [ $COUNT -gt 0 ]; then
break
fi
done
PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_PATH | awk '{print $2}'`
echo "${JAR_NAME} 启动成功, PID 为: ${PIDS}."
echo "日志文件所在位置: ${LOG_PATH} "
echo "查看日志:tail -300f ${LOG_PATH} "
echo "查看日志:tloginvestigation "
elif [ "$1" == "stop" ];then
PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_PATH | awk '{print $2}'`
if [ -z "$PIDS" ]; then
echo "停止服务失败:$JAR_NAME 没有启动!"
exit 1
fi
echo -e "停止服务 $JAR_NAME..."
for PID in $PIDS; do
kill $PID > /dev/null 2>&1
echo "kill: $PID !"
done
COUNT=0
while [ $COUNT -lt 1 ]; do
sleep 1
COUNT=1
for PID in $PIDS ; do
PID_EXIST=`ps --no-heading -p $PID`
if [ -n "$PID_EXIST" ]; then
COUNT=0
break
fi
done
done
echo -e "${JAR_NAME} 服务停止成功,PID为: ${PIDS}"
elif [ "$1" == "restart" ];then
PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_PATH | awk '{print $2}'`
if [ -n "$PIDS" ]; then
echo -e "停止服务 $JAR_NAME..."
for PID in $PIDS; do
kill $PID > /dev/null 2>&1
echo "kill: $PID !"
done
COUNT=0
while [ $COUNT -lt 1 ]; do
sleep 1
COUNT=1
for PID in $PIDS ; do
PID_EXIST=`ps --no-heading -p $PID`
if [ -n "$PID_EXIST" ]; then
COUNT=0
break
fi
done
done
echo -e "${JAR_NAME} 服务停止成功,PID为: ${PIDS}"
fi
echo "启动 $JAR_NAME 服务..."
# start
nohup java $JAVA_MEM_OPTS -jar $SPRING_PROFILES_ACTIV $JAR_PATH >> $LOG_PATH 2>&1 &
COUNT=0
while [ $COUNT -lt 1 ]; do
sleep 1
COUNT=`ps --no-heading -C java -f --width 1000 | grep $JAR_PATH | awk '{print $2}' | wc -l`
if [ $COUNT -gt 0 ]; then
break
fi
done
PIDS=`ps --no-heading -C java -f --width 1000 | grep $JAR_PATH | awk '{print $2}'`
echo "${JAR_NAME} 启动的 PID 为: ${PIDS}."
echo "您的控制台日志在: ${LOG_PATH} "
echo "查看日志:tail -300f ${LOG_PATH} "
echo "查看日志:tloginvestigation "
elif [ "$1" == "cp" ];then
cp $JAR_NAME.jar backup/$JAR_NAME-`date +%Y%m%d%H%M`.jar
echo "$JAR_NAME 备份完成"
else
echo_help
exit 1
fi
评论0