写了个启动程序, 调优jvm的脚本

#!/bin/bash

MEM=`free -m | grep Mem | awk '{print int($2 * 90 / 100)}'`

JAVA_OPTS="-server \
-Xmx${MEM}m -XX:+UseG1GC -XX:MaxGCPauseMillis= -XX:ParallelGCThreads=\
" APP_HOME=`dirname $(pwd)`
APP_JAR_NAME="idfa.web-1.0.jar"
PID_FILE="$APP_HOME/pid.file" pid= commond="$JAVA_OPTS -jar $APP_HOME/libs/$APP_JAR_NAME"
#commond="nohup java -jar $APP_HOME/libs/$APP_JAR_NAME 1 >> $APP_HOME/nohup.log 2>&1 &" getpid() {
if [ -f "${PID_FILE}" ]; then
pid=`cat ${PID_FILE}`
echo "----------------------------------------"
echo "pid file with ${pid}"
echo "----------------------------------------"
pid_count=`ps aux | grep idfa.web-1.0 | grep " ${pid} " | grep -v grep | wc -l`
if [ ${pid_count} -eq ]; then
echo "${pid} dose not exist!"
rm -rf ${PID_FILE}
pid=
fi
else
pid=
fi
} startup(){
getpid
echo "======================================="
if [ ${pid} -ne ]; then
echo "${APP_JAR_NAME} already started(PID=${pid})"
echo "======================================="
else
echo "Starting ${APP_JAR_NAME}"
ulimit -c unlimited
cd ${APP_HOME} echo $commond nohup java $commond & echo $! > ${PID_FILE} sleep getpid if [ ${pid} -ne ]; then
echo "(PID=${pid})...[Success]"
echo "======================================="
else
echo "[Failed]"
echo "======================================="
exit -
fi
cd -
fi
} shutdown(){
getpid
echo "======================================="
if [ ${pid} -ne ]; then
echo "Stopping ${APP_JAR_NAME}(PID=${pid})..."
kill - ${pid}
getpid
while [ ${pid} -ne ]
do
sleep
getpid
done
echo "[Success]"
echo "======================================="
else
echo "${APP_JAR_NAME} is not running"
echo "======================================="
fi
} shutdown_force(){
getpid
echo "======================================="
if [ ${pid} -ne ]; then
echo "Stopping ${APP_JAR_NAME}(PID=${pid})..."
kill - ${pid}
getpid
while [ ${pid} -ne ]
do
sleep
getpid
done
echo "[Success]"
echo "======================================="
else
echo "${APP_JAR_NAME} is not running"
echo "======================================="
fi
} status(){
getpid
echo "======================================="
if [ ${pid} -ne ]; then
echo "${APP_JAR_NAME} is running(PID=${pid})"
echo "======================================="
else
echo "${APP_JAR_NAME} is not running"
echo "======================================="
fi
} case "$1" in
start)
startup
;;
stop)
shutdown
;;
force)
shutdown_force
;;
restart)
$ stop
sleep
$ start
;;
status)
status
;;
*)
exit
esac

linux-程序发布脚本的更多相关文章

  1. linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码

    1.本地发布脚本 publish.sh #!/bin/sh currentDay=`date +%Y%m%d` currentTime=`date +%Y%m%d%H%M%S` tomcat1=/da ...

  2. Linux程序守护脚本

    不废话,直接上脚本,[]注释的下发语句需要按需替换: #!/usr/bin/env bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/us ...

  3. 不错的linux下通用的java程序启动脚本

    不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...

  4. Linux 程序启停脚本

    start.sh #!/bin/sh java -jar ./program.jar & echo $! > /var/run/program.pid stop.sh #!/bin/sh ...

  5. [置顶] Linux下发布QT程序

    Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...

  6. 【linux】Shell脚本启动程序

    Linux 下后台脚本启动Jar程序 Nohup后台输出运行日志 cd /home/zeze/jar/WeiboPost java -jar WeiboAutoPost.jar ../configur ...

  7. 『学了就忘』Linux软件包管理 — 49、拓展:Linux中通过脚本安装程序

    目录 1.脚本程序简介 2.Webmin安装 (1)简介 (2)安装 (3)使用 1.脚本程序简介 脚本程序包并不多见,所以在软件包分类中并没有把它列为一类.它更加类似于Windows下的程序安装,有 ...

  8. Linux打包免安装的Qt程序(编写导出依赖包的脚本copylib.sh,程序启动脚本MyApp.sh)

    本文介绍如何打包Qt程序,使其在没有安装Qt的系统可以运行. 默认前提:另外一个系统和本系统是同一个系统版本. 1,编写导出依赖包的脚本copylib.sh #!/bin/bash LibDir=$P ...

  9. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...

  10. Linux上 发布.Net Core

    环境准备 下面我们使用VM虚拟机.我这里安装的Linux系统是centos7 软件提供: VM: https://www.vmware.com/cn.html centos7 Minimal :htt ...

随机推荐

  1. ICCV 2017论文分析(文本分析)标题词频分析 这算不算大数据 第一步:数据清洗(删除作者和无用的页码)

    IEEE International Conference on Computer Vision, ICCV 2017, Venice, Italy, October 22-29, 2017. IEE ...

  2. spring之hello(简单环境配置)

    导入java包 配置springmvc.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans ...

  3. MySQL数据库与表的增删改查

    1.值库管理 1.1 查询所有值库 show databases; 1.2 创建一个值库 create database 值库名称 default character set 编码格式名称; 1.3 ...

  4. Codeforces Round #264 (Div. 2) D. Gargari and Permutations 多序列LIS+dp好题

    http://codeforces.com/contest/463/problem/D 求k个序列的最长公共子序列. k<=5 肯定 不能直接LCS 网上题解全是图论解法...我就来个dp的解法 ...

  5. 动态设置和访问cxgrid列的Properties

    动态设置和访问cxgrid列的Properties   设置: cxGrid1DBTableView1Column.PropertiesClass   =   TcxTextEditPropertie ...

  6. Android-Java构造代码块&构造方法隐式三行

    构造代码块: 描述Teacher对象/实体: package android.java.oop06; public class Teacher { private int id = 007; priv ...

  7. HTTP状态代码列表

    httpContext.Response.StatusCode=200 1xx - 信息提示这些状态代码表示临时的响应.客户端在收到常规响应之前,应准备接收一个或多个 1xx 响应. · 100 - ...

  8. JS原生事件处理(跨浏览器)

    一.关于获取事件对象 FF有点倔强,只支持arguments[0],不支持window.event.这次真的不怪IE,虽然把event作为window的属性不合规范,但大家都已经默许这个小问题存在了, ...

  9. C# byte和10进制、16进制相互转换

    var SRMP = new byte[4]; Array.Copy(Encoding.UTF8.GetBytes(1.ToString("x2")), SRMP, Encodin ...

  10. .net core Area独立成单独的dll文件

    以前做MES项目遇到过这个情况,一个项目有7到8个大模块,生产.质量.物耗.电子看板.设备等,每个模块都有大量业务,这样使用mvc结构如果所有模块放在一个目录中,那么势必会产生很多问题,各模块代码不好 ...