109 lines
2.7 KiB
Bash
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=$$)--------"
|