linux-程序发布脚本
写了个启动程序, 调优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-程序发布脚本的更多相关文章
- linux 服务发布脚本升级,远程发布,指定拉取远程dev,test等分支代码
1.本地发布脚本 publish.sh #!/bin/sh currentDay=`date +%Y%m%d` currentTime=`date +%Y%m%d%H%M%S` tomcat1=/da ...
- Linux程序守护脚本
不废话,直接上脚本,[]注释的下发语句需要按需替换: #!/usr/bin/env bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/us ...
- 不错的linux下通用的java程序启动脚本
不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...
- Linux 程序启停脚本
start.sh #!/bin/sh java -jar ./program.jar & echo $! > /var/run/program.pid stop.sh #!/bin/sh ...
- [置顶] Linux下发布QT程序
Linux下发布QT程序 概述 无论在windows下还是在linux下,可执行程序的运行都依赖于相关的运行库,我们需要将依赖的库找到放到特定的位置,让可执行文件能够找到.在不知道可执行文件依赖哪些库 ...
- 【linux】Shell脚本启动程序
Linux 下后台脚本启动Jar程序 Nohup后台输出运行日志 cd /home/zeze/jar/WeiboPost java -jar WeiboAutoPost.jar ../configur ...
- 『学了就忘』Linux软件包管理 — 49、拓展:Linux中通过脚本安装程序
目录 1.脚本程序简介 2.Webmin安装 (1)简介 (2)安装 (3)使用 1.脚本程序简介 脚本程序包并不多见,所以在软件包分类中并没有把它列为一类.它更加类似于Windows下的程序安装,有 ...
- Linux打包免安装的Qt程序(编写导出依赖包的脚本copylib.sh,程序启动脚本MyApp.sh)
本文介绍如何打包Qt程序,使其在没有安装Qt的系统可以运行. 默认前提:另外一个系统和本系统是同一个系统版本. 1,编写导出依赖包的脚本copylib.sh #!/bin/bash LibDir=$P ...
- Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)
Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...
- Linux上 发布.Net Core
环境准备 下面我们使用VM虚拟机.我这里安装的Linux系统是centos7 软件提供: VM: https://www.vmware.com/cn.html centos7 Minimal :htt ...
随机推荐
- (记忆化搜索) FatMouse and Cheese(hdu 1078)
题目大意: 给n*n地图,老鼠初始位置在(0,0),它每次行走要么横着走要么竖着走,每次最多可以走出k个单位长度,且落脚点的权值必须比上一个落脚点的权值大,求最终可以获得的最大权值 (题目很容 ...
- 服务化实战之 dubbo、dubbox、motan、thrift、grpc等RPC框架比较及选型
转自: http://blog.csdn.net/liubenlong007/article/details/54692241 概述 前段时间项目要做服务化,所以我比较了现在流行的几大RPC框架的优缺 ...
- csdn上讲一个实时计算架构比较清晰的一篇文章
https://blog.csdn.net/ymh198816/article/details/51998085
- cudnn 安装步骤
上官网下载对应的cudnn https://developer.nvidia.com/cudnn 下载完cudnn后,命令行输入文件所在的文件夹 (ubuntu为本机用户名) cd home/ubun ...
- linux时间格式总结
原文:https://blog.csdn.net/drcwr/article/details/50971637 %% a literal % 一个文字 %a locale's abbre ...
- css中“~”和“>”是什么意思
p~ul选择器 p之后出现的所有ul. 两种元素必须拥有相同的父元素,但是 ul不必直接紧随 p. css中“>”是: css3特有的选择器,A>B 表示选择A元素的所有子B元素. 与A ...
- 阿里云oss服务通用类
在webconfig中配置信息 <?xml version="1.0" encoding="utf-8"?><configuration> ...
- PowerDesigner执行脚本 name/comment/stereotype互转
执行方法:工具栏->Tools -> Execute Commands -> Edit/Run Script (Ctrl+Shift+X) 如下图所示: 1.Name转到Commen ...
- ssh连接卡在【To escape to local shell, press 'Ctrl+Alt+]'.】的解决方法
一.现象 1.使用xshell连接远程主机的时候一直卡在To escape to local shell, press 'Ctrl+Alt+]'.,要等很久才能连上: Connecting to 19 ...
- 18_python_类关系
一.类与类之间的关系 1.依赖关系 class Elephant: def __init__(self, name): self.name = name def open(self, ...