file/src/main/script/start.sh
MAC 1e27b0a8a4 !46 代码优化
Merge pull request !46 from MAC/develop
2021-05-30 09:44:44 +08:00

109 lines
2.7 KiB
Bash

#!/bin/bash
cd `dirname $0`
BIN_DIR=`pwd`
cd ..
DEPLOY_DIR=`pwd`
SPRING_PROFILES_ACTIVE="prod"
export SPRING_PROFILES_ACTIVE
echo "-------- SPRING_PROFILES_ACTIVE ${SPRING_PROFILES_ACTIVE}--------"
echo "--------start app ${DEPLOY_DIR}--------"
PARENT_DIR=$(dirname "$PWD")
CONF_DIR=$DEPLOY_DIR/conf
LIB_DIR=$DEPLOY_DIR/lib
SERVER_NAME=`cat $CONF_DIR/config/application.properties | grep -w "spring.application.name" | grep -v "#" | awk -F= 'NR==1{print $2}'`
SERVER_PORT=`cat $CONF_DIR/config/application.properties | grep -w "server.port" | grep -v "#" | awk -F= 'NR==1{print $2}'`
LOG_PATH=$DEPLOY_DIR/log/qiwen-file
if [ "${LOG_PATH}" == "" ] ; then
LOG_PATH=$PARENT_DIR/logs/${SERVER_NAME}
fi
if [ ! -d ${LOG_PATH} ];then
mkdir -p ${LOG_PATH}
fi
STDOUT_FILE=${LOG_PATH}/nohup.out
#if use self jdk,modify
#JAVA_HOME="/usr/lib/jvm/jdk1.8.0_191"
if ! java -version &>/dev/null;then
if [ "${JAVA_HOME}" != "" ] ; then
export JAVA_HOME
export PATH=$PATH:JAVA_HOME/bin
echo JAVA_HOME:${JAVA_HOME}
else
echo "JAVA_HOME not set!!!"
exit 1
fi
fi
USER_VMARGS="-D64 -server -Xmx1g -Xms1g -Xmn521m -Xss256k "
GC_OPTS=""
JMX_PORT=""
JAVA_JMX_OPTS=""
if [ "${JMX_PORT}" != "" ] ; then
JAVA_JMX_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=${JMX_PORT} "
fi
#JAVA_DEBUG=""
#if [ "$1" = "debug" ]; then
# JAVA_DEBUG=" -Xdebug "
#fi
JAVA_OPTS=""
#prevent repeated start
PIDS=`ps -ef | grep java | grep "$CONF_DIR" |awk '{print $2}'`
if [ -n "$PIDS" ]; then
echo "ERROR: The $SERVER_NAME already started!"
echo "PID: $PIDS"
exit 1
fi
if [ -n "$SERVER_PORT" ]; then
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
if [ $SERVER_PORT_COUNT -gt 0 ]; then
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
exit 1
fi
fi
#=====================
LIB_JARS=$DEPLOY_DIR/lib/*
echo "Using LIB_JARS: $LIB_JARS"
echo "Using CONF_DIR: $CONF_DIR"
CLASSPATH=".:$CONF_DIR:$LIB_JARS"
EXEC_CMDLINE="java -classpath ${CLASSPATH} ${USER_VMARGS} ${GC_OPTS} ${JAVA_JMX_OPTS} ${JAVA_DEBUG} ${JAVA_OPTS} com.qiwenshare.file.FileApplication"
echo "Start app command line: ${EXEC_CMDLINE}" >> $STDOUT_FILE
echo "Starting $SERVER_NAME ..."
nohup ${EXEC_CMDLINE} >> $STDOUT_FILE 2>&1 &
COUNT=0
while [ $COUNT -lt 120 ]; do
echo -e ".\c"
sleep 1
IS_LISTENED=`netstat -an | grep -w LISTEN | grep -w $SERVER_PORT`
let COUNT++
if [ -n "$IS_LISTENED" ]; then
COUNT=1000
fi
done
echo "Console File: $STDOUT_FILE"
echo "--------start app $SERVER_NAME on $(uname -n) (pid=$$)--------"