97 lines
2.8 KiB
Bash
97 lines
2.8 KiB
Bash
#! /bin/bash
|
|
|
|
#具体执行哪个步骤
|
|
ACTION=$1
|
|
|
|
echo "开始执行脚本 启动参数 $1"
|
|
|
|
##source /etc/profile
|
|
set -e
|
|
|
|
# Find the java binary
|
|
if [ -n "${JAVA_HOME}" ]; then
|
|
JAVA_RUN="${JAVA_HOME}/bin/java"
|
|
else
|
|
if [ `command -v java` ]; then
|
|
JAVA_RUN="java"
|
|
else
|
|
echo "JAVA_HOME is not set" >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
curr_path=`pwd`
|
|
shell_path=$(cd $(dirname $0); pwd)
|
|
cd ${shell_path}
|
|
echo "JAVA_HOME= ${JAVA_HOME}"
|
|
|
|
##变量设置##
|
|
env=prod
|
|
project=$(find "../lib" -regex ".*flink-streaming-web.*.jar")
|
|
echo "project= $project"
|
|
time=$(date "+%Y%m%d-%H%M%S")
|
|
|
|
##JAVA_OPTS设置
|
|
JAVA_OPTS=" -javaagent:./jmx_prometheus_javaagent-0.17.1.jar=12345:./jmx-config.yaml -Xmx1888M -Xms1888M -Xmn1536M -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseConcMarkSweepGC -Xdebug -Xrunjdwp:transport=dt_socket,address=9901,server=y,suspend=n -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+CMSClassUnloadingEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark -XX:ErrorFile=../logs/hs_err_pid%p.log -XX:HeapDumpPath=../logs -XX:+HeapDumpOnOutOfMemoryError"
|
|
|
|
start(){
|
|
echo "开始启动服务 app_name=$project "
|
|
pid=$(ps x | grep $project | grep -v grep | awk '{print $1}')
|
|
echo $pid
|
|
if [ -z $pid ]
|
|
then
|
|
echo "开始启动进程执行命令 java $JAVA_OPTS -jar $project --spring.profiles.active=$env --spring.config.additional-location=../conf/application.properties "
|
|
java $JAVA_OPTS -jar $project --spring.profiles.active=$env --spring.config.additional-location=../conf/application.properties >/dev/null 2>&1 &
|
|
sleep 5
|
|
pid=$(ps x | grep $project | grep -v grep | awk '{print $1}')
|
|
if [ -z $pid ]
|
|
then
|
|
echo "启动应用进程失败 请手动执行一下 java -jar $project --spring.profiles.active=$env --spring.config.additional-location=../conf/application.properties "
|
|
else
|
|
echo "启动成功 pid=" $pid
|
|
fi
|
|
echo "可通过命令 tail -fn 300 ../logs/info.log 查看web日志"
|
|
else
|
|
echo " $project 进程已经存 pid=" $pid
|
|
fi
|
|
}
|
|
|
|
stop()
|
|
{
|
|
pid=$(ps x | grep $project | grep -v grep | awk '{print $1}')
|
|
echo "进程 $pid"
|
|
echo "------>Check pid of $project"
|
|
if [ -z "$pid" ]
|
|
then
|
|
echo "------>APP_NAME process [$project] is already stopped"
|
|
else
|
|
for pid in ${pid[*]}
|
|
do
|
|
echo "------>Kill process which pid=$pid"
|
|
/bin/kill $pid
|
|
done
|
|
sleep 5
|
|
fi
|
|
}
|
|
|
|
restart()
|
|
{
|
|
stop;
|
|
start;
|
|
}
|
|
|
|
case "$ACTION" in
|
|
restart)
|
|
cp $project $project$time
|
|
restart
|
|
;;
|
|
start)
|
|
start
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
esac
|
|
cd ${curr_path}
|
|
|