springboot启动脚本start.sh和停止脚本 stop.sh的详细教程
我们在项目中都会遇到项目打包,可以通过assembly对我们的项目进行打包。
针对打包构建jar包,本文不再叙述。具体可以参考maven插件assembly使用及springboot启动脚本start.sh和停止脚本stop.sh
这里面已经有一个springboot的启动脚本了,本文之所以还要写,是因为之前的脚本存在一个问题。关闭脚本的时候是通过kill-9命令进行的,但其实我们项目中可能很多时候不能强制关闭的,在关闭之前需要做一些事情。比如将内存数据存到磁盘,dubbo清空zookeeper里面的固定节点等等。
这里将启动脚本环境变量抽出来作为一个文件来使用:
setenv.sh
#!/usr/bin/envbash PIDFILE=server.pid if["$JAVA_HOME"!=""];then JAVA="$JAVA_HOME/bin/java" else JAVA=java fi JAVA_OPTS="-server-Xms32m-Xmx32m-Xmn24m-Xss256K-XX:MetaspaceSize=10m-DHADOOP_USER_NAME=root -XX:SurvivorRatio=4-XX:+UseConcMarkSweepGC\ -XX:+UseCMSCompactAtFullCollection-XX:CMSFullGCsBeforeCompaction=10\ -XX:CMSInitiatingOccupancyFraction=60-XX:+AggressiveOpts\ -XX:+UseFastAccessorMethods\ -XX:+HeapDumpOnOutOfMemoryError\ -XX:HeapDumpPath=$base_dir/dump.dump -XX:+PrintGCDateStamps-XX:+PrintGCDetails\ -Xloggc:$base_dir/gc.log"
start.sh启动脚本:
#!/usr/bin/envbash #source$(dirname$0)/../../env.sh SERVERJAR="database-project-0.0.1-SNAPSHOT.jar" base_dir=$(dirname$0) cd.. if[-r"$base_dir/setenv.sh"];then ."$base_dir/setenv.sh" fi PID=$(ps-ef|grep"$SERVERJAR"|grep-vgrep|awk'{print$2}') if[-z"$PID"];then echo"Applicationhasalreadystopped." else echo"kill$PID" kill$PID&&echo"Sendstoppingsignaltoserversuccessful." #waitserverstop LOOPS=0 while(true) do PID=$(ps-ef|grep"$SERVERJAR"|grep-vgrep|awk'{print$2}') if[-z"$PID"];then echo"Stopserversuccessful!Cost$LOOPSseconds." break; fi #judgetimeout if["$LOOPS"-gt180];then echo"$Stopservercosttimeover180seconds.Nowforcestopit." kill-9$PID&&echo"Forcestopsuccessful." break; else echo"Cost$LOOPSseconds." fi letLOOPS=LOOPS+1 sleep1 done fi echo`pwd` echo$SERVERJAR echo$JAVA echo$JAVA_OPTS echo$JAVA_DEBUG_OPT nohup$JAVA$JAVA_OPTS-jar$base_dir/../lib/$SERVERJAR>$base_dir/nohup.out2>&1"$PIDFILE" if[$?-eq0];then sleep1 echo"STARTED" else echo"FAILEDTOWRITEPID" exit1 fi else echo"SERVERDIDNOTSTART" exit1 fi
stop.sh脚本
#!/usr/bin/envbash #source$(dirname$0)/../../env.sh SERVERJAR="database-project-0.0.1-SNAPSHOT.jar" base_dir=$(dirname$0) cd.. if[-r"$base_dir/setenv.sh"];then echo-e"comegetdatastart" ."$base_dir/setenv.sh" echo-e"comegetdataend" fi PID=$(ps-ef|grep"$SERVERJAR"|grep-vgrep|awk'{print$2}') if[-z"$PID"];then echo"Applicationhasalreadystopped." else echo"kill$PID" kill$PID&&echo"Sendstoppingsignaltoserversuccessful." #waitserverstop LOOPS=0 while(true) do PID=$(ps-ef|grep"$SERVERJAR"|grep-vgrep|awk'{print$2}') if[-z"$PID"];then echo"Stopserversuccessful!Cost$LOOPSseconds." break; fi #judgetimeout if["$LOOPS"-gt180];then echo"$Stopservercosttimeover180seconds.Nowforcestopit." kill-9$PID&&echo"Forcestopsuccessful." break; else echo"Cost$LOOPSseconds." fi letLOOPS=LOOPS+1 sleep1 done fi
总结
到此这篇关于springboot启动脚本start.sh和停止脚本stop.sh的详细教程的文章就介绍到这了,更多相关springboot启动脚本start.sh和停止脚本stop.sh内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。