博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 8 启动脚本优化
阅读量:5293 次
发布时间:2019-06-14

本文共 2959 字,大约阅读时间需要 9 分钟。

1 #!/bin/bash  2   3 JAVA_HOME=/usr/java/default  4   5 #java虚拟机启动参数  6 JAVA_OPTS="-server -Xms1366m -Xmx2g -Xmn768m -Xss256k -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRatio=19 -Xnoclassgc -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseCMSCompactAtFullCollection -XX:CMSFullGCsBeforeCompaction=0 -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -Xloggc:/data/logs/video-api/gc.log "  7   8 #这里可替换为你自己的执行程序,其他代码无需更改  9 APP_NAME=video.jar 10 APP_USER=tomcat 11  12 #SHUTDOWN_WAIT is wait time in seconds for java proccess to stop 13 SHUTDOWN_WAIT=90 14  15 workdir=$(cd $(dirname $0); pwd) 16  17 #使用说明,用来提示输入参数 18 usage() { 19     echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" 20     exit 1 21 } 22  23 #检查程序是否在运行 24 is_exist(){ 25   pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` 26   #如果不存在返回1,存在返回0 27   if [ -z "${pid}" ]; then 28    return 1 29   else 30     return 0 31   fi 32 } 33  34 # @args 
35 # return random integer in [
,
) 36 function random_range() { 37 local beg=$1 38 local end=$2 39 echo $((RANDOM % ($end - $beg) + $beg)) 40 } 41 42 #启动方法 43 start(){ 44 is_exist 45 if [ $? -eq "0" ]; then 46 echo "${APP_NAME} is already running. pid=${pid} ." 47 else 48 #port=$(random_range 30000 60000) 49 port=8004 50 nohup java $JAVA_OPTS -jar $workdir/$APP_NAME --server.port=$port > /dev/null 2>&1 & 51 is_exist 52 if [ $? -eq "0" ]; then 53 echo "${APP_NAME} started. pid=${pid}, port=$port." 54 fi 55 fi 56 } 57 58 #停止方法 59 stop(){ 60 is_exist 61 if [ $? -eq "0" ]; then 62 kill $pid 63 64 65 let kwait=$SHUTDOWN_WAIT 66 count=0; 67 until [ `ps -p $pid | grep -c $pid` = '0' ] || [ $count -gt $kwait ] 68 do 69 echo -n -e "\n\e[00;31mwaiting for processes to exit\e[00m"; 70 sleep 1 71 let count=$count+1; 72 done 73 74 if [ $count -gt $kwait ]; then 75 echo -n -e "\n\e[00;31mkilling processes didn't stop after $SHUTDOWN_WAIT seconds\e[00m" 76 kill -9 $pid 77 fi 78 79 echo "${APP_NAME} stoped." 80 else 81 echo "${APP_NAME} is not running" 82 fi 83 } 84 85 #输出运行状态 86 status(){ 87 is_exist 88 if [ $? -eq "0" ]; then 89 echo "${APP_NAME} is running. Pid is ${pid}" 90 else 91 echo "${APP_NAME} is NOT running." 92 fi 93 } 94 95 #重启 96 restart(){ 97 stop 98 start 99 }100 101 #根据输入参数,选择执行对应方法,不输入则执行使用说明102 case "$1" in103 "start")104 start105 ;;106 "stop")107 stop108 ;;109 "status")110 status111 ;;112 "restart")113 restart114 ;;115 *)116 usage117 ;;118 esac

 

转载于:https://www.cnblogs.com/tonyauto/p/11101012.html

你可能感兴趣的文章
C#预处理器命令
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
ccf 出现次数最多的数
查看>>
单例模式
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
Tomcat 报错的解决方法:The APR based Apache Tomcat Native library which allows optimal
查看>>
最长公共子串问题(LCS)
查看>>
TortoiseSVN is locked in another working copy
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
Html学习_简易个人网页制作
查看>>
angular中ng-bind指令小案例
查看>>
jqery总结
查看>>
Lodop获取客户端主网卡ip地址是0.0.0.0
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>