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文件中的相关可变配置需要自行配置!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构