写了个启动程序, 调优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. 配置React的Babel 6和Webpack 2环境

    Facebook的一帮子工程师在忙碌之余开发除了一套前段UI框架React.这个框架最大的有点就在于让UI的开发都基于组件,这样View都是根据props和state变化的. 项目地址:https:/ ...

  2. tomcat配置之后,localhost:8080访问不到猫界面解决办法

  3. STL容器-- forward_list 用法

    http://www.cplusplus.com/reference/forward_list/

  4. form表单提交时action路劲问题

    项目总出现window上部署可以访问,linux下部署不能访问的问题 linux下访问action必须是全路径,可以加上“${pageContext.request.contextPath}”  便可 ...

  5. Flink的入门

    Apache Flink(下简称Flink)项目是大数据处理领域最近冉冉升起的一颗新星,其不同于其他大数据项目的诸多特性吸引了越来越多人的关注.本文将深入分析Flink的一些关键技术与特性,希望能够帮 ...

  6. CF每日一题系列 —— 415A

    http://codeforces.com/problemset/page/7?order=BY_SOLVED_DESC 从5000以内选的,emmm还是比较水的哈 时间还是有的,所以万事万物贵在坚持 ...

  7. JVM虚拟机---本地接口(我还不太会)

    转载http://www.newhua.com/2008/0328/33542_2.shtml Java本地接口(Java Native Interface (JNI))允许运行在Java虚拟机(Ja ...

  8. XE7 & FMX 那些年我们一起上过的控件:ListView 之 (3) 加载数据时如何显示自定义样式

    本文介绍一下ListView下如何加载数据.及使用进度条反馈当前进度给用户. 注意: 原创作品,请尊重作者劳动成果,转载请注明出处!!!原文永久固定地址:http://www.cnblogs.com/ ...

  9. Ubuntu下SVN安装和配置

    一.SVN安装 1.安装包 1.$ sudo apt-get install subversion 2.创建项目目录 $ sudo mkdir /home/xiaozhe/svn $ cd /home ...

  10. 【转】PowerDesigner快捷键

    一般快捷键 快捷键 说明 F4 打开检查模型窗口,检查模型 F5 如果图窗口内的图改变过大小,恢复为原有大小即正常大小 F6 放大图窗口内的图 F7 缩小图窗口内的图 F8 在图窗口内中查看全部图内容 ...