#!/bin/bashsleep1functionstart(){cd"$1"DIR_BASE="$1"BootStrap="$1/$2"JVM_SIZE=''YOUNG_SIZE=''NEW_SIZE=''DIR_LIB=$DIR_BASE/lib
JAVA_OPTS='-Dfile.encoding=UTF-8 -Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000 -Dnet.sf.ehcache.enableShutdownHook=true'#if test -e $DIR_LIB;then# JAVA_OPTS="$JAVA_OPTS -cp $DIR_LIB"#fiif["$JVM_SIZE"=''];thenJVM_SIZE=$(free-m|awk '$2 >0&&NR==2{print (($2/128) - ($2/128%1)) * 64}') > /dev/null
fi
if [ $JVM_SIZE -gt 4096 ];then
JVM_SIZE=4096
fi
YOUNG_SIZE=$(($JVM_SIZE / 4))
NEW_SIZE=$(($YOUNG_SIZE / 2))
JVM_OPTS=" \
-server \
-Xms${JVM_SIZE}M \
-Xmx${JVM_SIZE}M \
-Xmn${YOUNG_SIZE}M \
-XX:NewSize=${NEW_SIZE}M \
-Xss1M \
-XX:+PrintHeapAtGC \
-XX:SurvivorRatio=8 \
-XX:+PrintGCDetails \
-XX:+PrintFlagsFinal \
-XX:MetaspaceSize=64m \
-XX:+PrintGCTimeStamps \
-XX:+PrintGCDateStamps \
-XX:+DisableExplicitGC \
-XX:+UseConcMarkSweepGC \
-XX:PrintFLSStatistics=1 \
-XX:MaxMetaspaceSize=512m \
-XX:+PrintCommandLineFlags \
-XX:+UnlockDiagnosticVMOptions \
-XX:+PrintTenuringDistribution \
-XX:-HeapDumpOnOutOfMemoryError \
-XX:+PrintGCApplicationStoppedTime \
-XX:+PrintGCApplicationConcurrentTime"
touch nohup.out && sudo chmod 755 *
REMOTE_DEBBUG_CMD='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=14567'
echo "nohup java $REMOTE_DEBBUG_CMD $JVM_OPTS $JAVA_OPTS -jar $BootStrap > $DIR_BASE/nohup.out 2>&1 &"
nohup java $REMOTE_DEBBUG_CMD $JVM_OPTS $JAVA_OPTS -jar $BootStrap > $DIR_BASE/nohup.out 2>&1 &
}
CUR_DIR=$(dirname $0)
cd $CUR_DIR
JAR_NUM=$(ls *jar | awk -F " " '{print $1}' | wc -l)
if [ $JAR_NUM != 1 ]; then
echo "check jar file name failed, there is more or less than one jar file."
exit 1
fi
BOOT_STRAP=$(ls *jar | awk -F " " '{print $1}')
RUN_PID=$(ps -wef | grep java | grep -i $BOOT_STRAP | grep -v grep | awk -F " " '{printf $2" "}')iftest-z"$RUN_PID";then
start "$CUR_DIR""$BOOT_STRAP"elseecho"The Service already starting."echo"$RUN_PID"fi
停止脚本 stop.sh
#!/bin/bashCUR_DIR=$(dirname $0)cd$CUR_DIRJAR_NUM=$(ls *jar |awk-F" "'{print $1}'|wc-l)if[$JAR_NUM!=1];thenecho"check jar file name failed, there is more or less than one jar file."exit1fiBOOT_STRAP=$(ls *jar |awk-F" "'{print $1}')RUN_PID=$(ps-wef|grepjava|grep-i $BOOT_STRAP |grep-vgrep|awk-F" "'{printf $2" "}')iftest-z"$RUN_PID"thenecho"The Service already stopped."elseecho"$RUN_PID"forpidin$RUN_PIDdoif!test-z$pidthenkill-9"$pid"fidoneecho"Stopped Service Success."fiexit0