diff --git a/file-common/src/main/resources/conf/assembly.xml b/file-common/src/main/resources/conf/assembly.xml new file mode 100644 index 0000000..b1a9db8 --- /dev/null +++ b/file-common/src/main/resources/conf/assembly.xml @@ -0,0 +1,38 @@ + + assembly + + zip + + true + + + src/main/script + bin + 0755 + + *.* + + + + src/main/resources + conf + 0644 + + + + target + lib + + *.jar + + + + + + lib + false + true + runtime + + + diff --git a/file-web/pom.xml b/file-web/pom.xml index 49578e1..748d9b3 100644 --- a/file-web/pom.xml +++ b/file-web/pom.xml @@ -72,21 +72,55 @@ - - org.springframework.boot - spring-boot-maven-plugin - - + + + + org.apache.maven.plugins maven-jar-plugin + + + + + com.qiwenshare.file.FileApplication + true + lib/ + + + ./ + + + static/** + + + maven-assembly-plugin + + + false + + ../file-common/src/main/resources/conf/assembly.xml + + + + + make-assembly + package + + single + + + + + + org.apache.maven.plugins @@ -99,15 +133,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/file-web/src/main/resources/script/startup.bat b/file-web/src/main/resources/script/startup.bat deleted file mode 100644 index da31da4..0000000 --- a/file-web/src/main/resources/script/startup.bat +++ /dev/null @@ -1,2 +0,0 @@ -java -jar app/file-web/file-web-1.0.0-SNAPSHOT.jar -pause \ No newline at end of file diff --git a/file-web/src/main/resources/script/startup.sh b/file-web/src/main/resources/script/startup.sh deleted file mode 100644 index 034ca31..0000000 --- a/file-web/src/main/resources/script/startup.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -BUILD_ID=dontKillMe - -nohup java -jar app/file-web/file-web-1.0.0-SNAPSHOT.jar --server.port=8763 & - - - diff --git a/file-web/src/main/resources/script/stop.sh b/file-web/src/main/resources/script/stop.sh deleted file mode 100644 index 117e53e..0000000 --- a/file-web/src/main/resources/script/stop.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -PID=$(ps -ef | grep app/file-web |grep -v grep | awk '{ print $2 }') -if [ -z "$PID" ] -then - echo Application is already stopped -else - echo kill $PID - kill $PID -fi - diff --git a/file-web/src/main/script/restart.sh b/file-web/src/main/script/restart.sh new file mode 100644 index 0000000..d5cb3a8 --- /dev/null +++ b/file-web/src/main/script/restart.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd `dirname $0` +./stop.sh $* +./start.sh $* diff --git a/file-web/src/main/script/start.sh b/file-web/src/main/script/start.sh new file mode 100644 index 0000000..f5de535 --- /dev/null +++ b/file-web/src/main/script/start.sh @@ -0,0 +1,139 @@ +#!/bin/bash +. /etc/profile +. ~/.bashrc +. ~/.bash_profile +#support jsch commons + +cd `dirname $0` +BIN_DIR=`pwd` +cd .. +DEPLOY_DIR=`pwd` + +SPRING_PROFILES_ACTIVE="dev" +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.yml | grep -w "name:" | grep -v "#" | awk 'NR==1{print $2}' | tr -d '\r'` +SERVER_PORT=`cat $CONF_DIR/config/application.yml | grep -w "port:" | grep -v "#" | awk 'NR==1{print $2}' | tr -d '\r'` + +#REM ********************************************************************************************** +LOG_PATH="/export/log/qiwen-file" +GC_LOG_PATH="/export/log/qiwen-file/gc" +if [ "${LOG_PATH}" == "" ] ; then + LOG_PATH=$PARENT_DIR/logs/${SERVER_NAME} +fi +if [ "${GC_LOG_PATH}" == "" ] ; then + GC_LOG_PATH=$PARENT_DIR/logs/${SERVER_NAME}/gclog +fi + +if [ ! -d ${LOG_PATH} ];then + mkdir -p ${LOG_PATH} +fi +if [ ! -d ${GC_LOG_PATH} ];then + mkdir -p ${GC_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_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 + +USER_VMARGS="-D64 -server -Xmx1g -Xms1g -Xmn521m -Xss256k " + +#GC_OPTS="" +GC_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_PATH/heapdump.$$.hprof -XX:ErrorFile=$LOG_PATH/hs_err_pid$$.log -Xloggc:$GC_LOG_PATH/gc.$$.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC " + +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="" +#if [ "${JAVA_OPTS}" != "" ]; then +# JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " +#fi +#REM ********************************************************************************************** + +#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 +#===================== + +######################cloud trace########################## +TRACE_CLOUD_TRACE_URL=http://localhost:9411 +TRACE_CLOUD_TRACE_PROBABILITY=1.0 +TRACE_CLOUD_TRACE_ENABLED=true +TRACE_LIB_JARS="/opt/cloud-trace-deps-1.1.0/*" +echo "Using TRACE_LIB_JARS: $TRACE_LIB_JARS" +if [ -n "$TRACE_CLOUD_TRACE_URL" ]; then + TRACE_OPTS="-Dcloud.trace.url=$TRACE_CLOUD_TRACE_URL" +fi +if [ -n "$TRACE_CLOUD_TRACE_PROBABILITY" ]; then + TRACE_OPTS="$TRACE_OPTS -Dcloud.trace.probability=$TRACE_CLOUD_TRACE_PROBABILITY" +fi +if [ -n "$TRACE_CLOUD_TRACE_ENABLED" ]; then + TRACE_OPTS="$TRACE_OPTS -Dcloud.trace.enabled=$TRACE_CLOUD_TRACE_ENABLED" +fi +#echo "Using TRACE_OPTS: $TRACE_OPTS" +########################################################## + + +LIB_JARS=$DEPLOY_DIR/lib/* +echo "Using LIB_JARS: $LIB_JARS" +echo "Using CONF_DIR: $CONF_DIR" +echo "Using TRACE_LIB_JARS: $TRACE_LIB_JARS" + +CLASSPATH=".:$CONF_DIR:$LIB_JARS:$TRACE_LIB_JARS" + +EXEC_CMDLINE="${JAVA_HOME}/bin/java -classpath ${CLASSPATH} ${TRACE_OPTS} ${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 & + +###wait app start listener port, only wait 120s +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=$$)--------" \ No newline at end of file diff --git a/file-web/src/main/script/stop.sh b/file-web/src/main/script/stop.sh new file mode 100644 index 0000000..96a6d4e --- /dev/null +++ b/file-web/src/main/script/stop.sh @@ -0,0 +1,63 @@ +#!/bin/bash +. /etc/profile +. ~/.bashrc +. ~/.bash_profile +#support jsch commons + +cd `dirname $0` +BIN_DIR=`pwd` +cd .. +DEPLOY_DIR=`pwd` + +echo "========stop app ${DEPLOY_DIR}========" +PARENT_DIR=$(dirname "$PWD") +CONF_DIR=$DEPLOY_DIR/conf +LIB_DIR=$DEPLOY_DIR/lib +SERVER_NAME=`cat $CONF_DIR/config/application.yml | grep -w "name:" | grep -v "#" | awk 'NR==1{print $2}' | tr -d '\r'` +SERVER_PORT=`cat $CONF_DIR/config/application.yml | grep -w "port:" | grep -v "#" | awk 'NR==1{print $2}' | tr -d '\r'` + +#REM ********************************************************************************************** +LOG_PATH="/export/log/qiwen-file" +if [ "${LOG_PATH}" == "" ] ; then + LOG_PATH=$PARENT_DIR/logs/${SERVER_NAME} +fi + +STDOUT_FILE=$LOG_PATH/nohup.out + +if [ -z "$SERVER_NAME" ]; then + SERVER_NAME=`hostname` +fi + +PIDS=`ps -ef | grep java | grep "$CONF_DIR" |awk '{print $2}'` +if [ -z "$PIDS" ]; then + echo "ERROR: The $SERVER_NAME does not started!" + exit 1 +fi +#REM ********************************************************************************************** + +echo "Stopping the $SERVER_NAME ..." +echo "Stopping the $SERVER_NAME" >> $STDOUT_FILE +date>>$STDOUT_FILE +id>>$STDOUT_FILE +echo $SERVER_NAME shutdown , pids $PIDS >> $STDOUT_FILE + +for PID in $PIDS ; do + kill $PID +done + +COUNT=0 +while [ $COUNT -lt 1 ]; do + echo -e ".\c" + sleep 1 + COUNT=1 + for PID in $PIDS ; do + PID_EXIST=`ps -f -p $PID | grep java` + if [ -n "$PID_EXIST" ]; then + COUNT=0 + break + fi + done +done + +echo "PID: $PIDS has bean kill" >> $STDOUT_FILE +echo "========stop app $SERVER_NAME shutdown========" \ No newline at end of file diff --git a/file-web/src/main/script/winstart.bat b/file-web/src/main/script/winstart.bat new file mode 100644 index 0000000..e2bf9c5 --- /dev/null +++ b/file-web/src/main/script/winstart.bat @@ -0,0 +1,29 @@ +@echo off & setlocal enabledelayedexpansion +rem if need special jdk +rem JAVA_HOME="c:\Java\jdk1.8.0_191\" +rem PATH=%JAVA_HOME%\bin;%PATH% + +rem enter app deploy path +cd ..\ + +set DEPLOY_PATH=%cd% +set CONF_DIR=%DEPLOY_PATH%/conf +set LIB_JARS=%DEPLOY_PATH%/lib/* +set LOG_PATH=%DEPLOY_PATH%/logs + +set CLASSPATH=".;%CONF_DIR%;%LIB_JARS%" + +set JAVA_VM=-D64 -server -Xmx512m -Xms512m -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC +set JAVA_OPTIONS=-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=8231 + +echo DEPLOY_PATH: %DEPLOY_PATH% +echo CLASSPATH=%CLASSPATH% +echo "Start App..." + +java -version +java %JAVA_VM% %JAVA_OPTIONS% -classpath %CLASSPATH% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8336 com.qiwenshare.file.FileApplication + +goto end + +:end +pause \ No newline at end of file