java 8 启动脚本优化
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 <beg> <end>
35 # return random integer in [<beg>, <end>)
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" in
103 "start")
104 start
105 ;;
106 "stop")
107 stop
108 ;;
109 "status")
110 status
111 ;;
112 "restart")
113 restart
114 ;;
115 *)
116 usage
117 ;;
118 esac
java 8 启动脚本优化的更多相关文章
- java 8 启动脚本优化 3
#!/bin/bash #链接文件 source /etc/profile #java虚拟机启动参数 #通过http://xxfox.perfma.com/jvm/check来检查参数的合理性 #各参 ...
- java 8 启动脚本优化 2
#!/bin/bash #链接文件 source /etc/profile #java虚拟机启动参数 #通过http://xxfox.perfma.com/jvm/check来检查参数的合理性 JAV ...
- 不错的linux下通用的java程序启动脚本
不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...
- 不错的linux下通用的java程序启动脚本(转载)
转自:http://www.cnblogs.com/langtianya/p/4164151.html 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包 ...
- 【转】不错的linux下通用的java程序启动脚本
虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的通用shell脚本. 只需要修改一些配置变量,就可以用 ...
- shell java应用启动脚本(app.sh)
#!/bin/sh # java服务中需要的jar文件或classpath路径,如业务程序.第三方jar文件log4j等 ShellAbsPath=$(cd "$(dirname " ...
- java程序启动脚本
#!/bin/bash appName=`ls|grep .jar$` if [ -z $appName ] then echo "Please check that this script ...
- java后台服务器启动脚本
最近由于经常在项目上线或者调试中启动服务,由于要设置环境变量这些,所以为了方便写了个启动脚本,希望能够帮助大家,也算是给自己做个小笔记: example_project_start.sh: # /bi ...
- linux下启动和终止JAVA程序shell脚本
1.启动脚本start.sh #run application backgroud nohup java -jar chess-admin->& & #record the pr ...
随机推荐
- 未能加载文件或程序集“Microsoft.CodeDom.Providers.DotNetCompilerPlatform
"/"应用程序中的服务器错误. 未能加载文件或程序集"Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Versio ...
- 解决ip和域名都能够ping通但是启动nginx无法访问网页的问题
解决思路 最近双11逛西部数码的官网看看有没有什么服务器优惠的时候,发现了可以申请一个一块钱用一整年的SSL证书,立马心动下单了,想想俺也可以用https装装X了哈哈 不过在部署完证书,并调整ngin ...
- 洛谷 P6383 -『MdOI R2』Resurrection(DP)
洛谷题面传送门 高速公路上正是补 blog 的时候,难道不是吗/doge,难不成逆在高速公路上写题/jy 首先形成的图显然是连通图并且有 \(n-1\) 条边.故形成的图是一棵树. 我们考虑什么样的树 ...
- tabix 操作VCF文件
tabix 可以对NGS分析中常见格式的文件建立索引,从而加快访问速度,不仅支持VCF文件,还支持BED, GFF,SAM等格式. 下载地址: 1 https://sourceforge.net/pr ...
- perl FileHandle 模块使用
打开多个文件时必备啊 1 use FileHandle; 2 3 my (%index,%fh); 4 # 创建句柄,这里利用gzip 压缩下 5 foreach my $k(keys %index) ...
- ubuntu终端颜色快速配置
ubuntu终端颜色快速配置 根据以下step步骤设置即可 step1:备份:cp ~/.bashrc ~/.bashrc.backup step2:打开文件:vim ~/.bashrc step3: ...
- acquire
An acquired taste is an appreciation for something unlikely to be enjoyed by a person who has not ha ...
- 商业爬虫学习笔记day3
一. 付费代理发送请求的两种方式 第一种方式: (1)代理ip,形式如下: money_proxy = {"http":"username:pwd@192.168.12. ...
- 对于Linq关键字和await,async异步关键字的扩展使用
最近在看neuecc大佬写的一些库:https://neuecc.medium.com/,其中对await,async以及linq一些关键字实现了自定义化使用, 使其不需要引用对应命名空间,不需要多线 ...
- 安全相关,CSRF
先说下CSRF的定义 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF ...