1、启动文件start.sh
#!/bin/sh # # # APP_NAME=$(basename $(dirname "$PWD")) JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " JAVA_DEBUG_OPTS="" if [ "$1" = "debug" ]; then JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8778,server=y,suspend=n " fi JAVA_JMX_OPTS="" if [ "$1" = "jmx" ]; then JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false " fi JAVA_MEM_OPTS="" BITS=`java -version 2>&1 | grep -i 64-bit` if [ -n "$BITS" ]; then JAVA_MEM_OPTS=" -server -Xmx2048m -Xms2048m -Xmn256m -XX:PermSize=256m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 " else JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024 -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC " fi nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -jar ../$APP_NAME.jar --spring.profiles.active=hkprod > /dev/null 2>&1 & echo Start Success! PIDS=`ps -f | grep java | grep "$APP_NAME" | awk '{print $2}'` echo "PID: $PIDS"
2、停止文件stop.sh
#!/bin/sh # # # APP_NAME=$(basename $(dirname "$PWD")) tpid1=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` echo tpid1-$tpid1 if [[ $tpid1 ]]; then echo 'Stop Process...' kill -15 $tpid1 fi sleep 5 tpid2=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` echo tpid2-$tpid2 if [[ $tpid2 ]]; then echo 'Kill Process!' kill -9 $tpid2 else echo 'Stop Success!' fi
3、重启文件restart.sh
#!/bin/sh SHELL_FOLDER=$(dirname $(readlink -f "$0")) APP_NAME=$(basename $(dirname "$SHELL_FOLDER")) tpid1=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` echo tpid1-$tpid1 if [[ $tpid1 ]]; then echo 'Stop Process...' $APP_NAME kill -15 $tpid1 fi sleep 5 tpid2=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` echo tpid2-$tpid2 if [[ $tpid2 ]]; then echo 'Kill Process!' $APP_NAME kill -9 $tpid2 else echo 'Stop Success!' $APP_NAME fi JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true " JAVA_DEBUG_OPTS="" if [ "$1" = "debug" ]; then JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8778,server=y,suspend=n " fi JAVA_JMX_OPTS="" if [ "$1" = "jmx" ]; then JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false " fi JAVA_MEM_OPTS="" BITS=`java -version 2>&1 | grep -i 64-bit` if [ -n "$BITS" ]; then JAVA_MEM_OPTS=" -server -Xmx2048m -Xms2048m -Xmn256m -XX:PermSize=256m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 " else JAVA_MEM_OPTS=" -server -Xms1024m -Xmx1024 -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC " fi SHELL_FOLDER=$(dirname $(readlink -f "$0")) APP_NAME=$(basename $(dirname "$SHELL_FOLDER")) project_name=$(dirname $SHELL_FOLDER) #echo $project_name/$APP_NAME.jar nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -jar $project_name/$APP_NAME.jar --spring.profiles.active=hkprod > /dev/null 2>&1 & echo Start Success! $APP_NAME PIDS=`ps -f | grep java | grep "$APP_NAME" | awk '{print $2}'` echo "PID: $PIDS"
shell文件中的相关可变配置需要自行配置!!!
标签:shell,JAVA,NAME,APP,jar,XX,Linux,grep,OPTS From: https://www.cnblogs.com/meiya/p/17111369.html