jar 启动脚本
前段时间用springboot做项目后,每次重新发布都好麻烦, 所以写了个脚本来配合jenkins 发布;
#!/bin/bash APP_NAME=application.jar function check {
local PID=0
if [ -e tpid ] ;then
PID=$(cat tpid)
# while read TMPID; do PID=$TMPID ;done < tpid
fi
# echo "PID:$PID"
if ps -p $PID > /dev/null ;then
echo $PID
else
echo 0
fi
}
function isRun {
local PID=$(check)
if [ $PID -ne 0 ]; then
echo "application is running..."
else
echo "application is not running..."
fi
} function start {
if [ ! -e $APP_NAME ]; then
echo "$APP_NAME is not found!"
return 0
fi local PID=$(check)
if [ $PID -ne 0 ]; then
echo "$PID $APP_NAME was running..."
return 0
fi local argumet=""
if [ -e application.properties ] ;then
argumet="$argumet --spring.config.location=application.properties"
fi
nohup java -jar $APP_NAME $argumet > log.out 2>&1 &
echo $! > tpid
PID=$(cat tpid)
echo $PID Start Success!
} function stop {
local PID=$(check)
if [ $PID -ne 0 ]; then
echo -n "Stop Process..."
kill -15 $PID
num=0
while [[ num -le 5 ]]; do
# echo $num
echo -n "."
sleep 1
PID=$(check)
if [ $PID -eq 0 ]; then
echo "Success!"
return 0
fi
num=$[ $num + 1 ]
done
PID=$(check)
if [ $PID -ne 0 ]; then
kill -9 $PID
echo ""
echo "Kill Process!"
else
echo "Success!"
fi
return 0
fi
return 1
} function restart {
stop
start
} function deploy {
fd=$(date +"%Y%m%d%H%M%S")
fileCount=`ls ./target/ | grep .jar$ | wc -l`
if [ $fileCount -eq 1 ]; then
fileName=`ls ./target/ | grep .jar$`
newName="$fileName.$fd"
mv ./target/$fileName ./target/$newName
if [ -e ./$APP_NAME ]; then
rm -rf ./$APP_NAME
fi
ln -s ./target/$newName ./$APP_NAME
echo "deploy success..."
restart
else
echo "Can not be deploy, jar file $fileCount"
return 1
fi
} case $1 in
"start" ) start;;
"stop" ) stop;;
"check" ) isRun;;
"restart" ) restart;;
"deploy" ) deploy;;
* ) echo "$0 start"
echo "$0 stop"
echo "$0 check"
echo "$0 restart"
echo "$0 deploy"
esac exit 0
jar 启动脚本的更多相关文章
- jar启动脚本shell
#!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=/opt/server/msp/health-api/health-2.0.2.jar#使用说明,用来提示输入 ...
- springboot之jar运行脚本
一.现在的工程都将就独立和简单了,我们在使用springboot做开发或者其他框架做开发时,在linux上面执行的时候.总会写一下脚本,目的当然是为了更加好的运行程序.不然每次都手动输入一下命令,来调 ...
- 一篇关于Maven项目的jar包Shell启动脚本
使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都 ...
- SpringBoot项目打包成jar后,启动脚本
将springboot项目打包成jar后,上传至服务器,每次都需要手敲命令,重新部署项目,可将这些命令写入脚本中,直接运行. 启动脚本(start.sh): CUR_PATH=$(cd "$ ...
- (转)springboot应用启动原理(一) 将启动脚本嵌入jar
转:https://segmentfault.com/a/1190000013489340 Spring Boot Takes an opinionated view of building prod ...
- [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat
概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...
- 不错的linux下通用的java程序启动脚本
不错的linux下通用的java程序启动脚本(转载) 虽然写起动shell的频率非常不高...但是每次要写都要对付一大堆的jar文件路径,新加jar包也必须要修改起动shell. 在网上找到一个挺好的 ...
- Selenium2学习-005-WebUI自动化实战实例-003-三种浏览器(Chrome、Firefox、IE)启动脚本源代码
此文主要通过 三种浏览器(Chrome.Firefox.IE)启动脚本 功能,进行 Selenium2 三种浏览器启动方法的实战实例讲解.文中所附源代码于 2015-01-18 20:33 亲测通过, ...
- HBase配置&启动脚本分析
本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...
随机推荐
- 如何判断当前LINUX系统启用了ASLR
内核参数randomize_va_space用于控制系统级ASLR 0 关闭ASLR 1 mmap base.stack.vdso page将随机化.这意味着.so文件将被加载到随机地址.链接时指定了 ...
- vue2.0 之 directive指令 (自定义)
指令 一.定义: 指令只一种可以附加到DOM元素的微命令(tiny commands). 它们通常以"v-"作为前缀, 以方便Vue知道你在使用一种特殊的标记, 从而确保语法的一致 ...
- Codeforces Round #595 (Div. 3) 题解
前言 大家都在洛谷上去找原题吧,洛谷还是不错的qwq A 因为没有重复的数,我们只要将数据排序,比较两两之间有没有\(a_j - a_i == 1 (j > i)\) 的,有则输出 \(2\) ...
- alert(1) to win 15
- WiFi密码新攻击破解方法,黑客攻破只需10秒
近日,中国知名黑客安全组织东方联盟研究人员透露了一种新的WiFi黑客技术,使黑客更容易破解大多数现代路由器的WiFi密码,并且攻破只需要10秒,速度非常快. 方法是利用由流行的密码破解工具Hashca ...
- 01.helloworld--标签
"""参考网站:http://python.cocos2d.org/doc/programming_guide/index.html""" ...
- vertica copy
copy huimei.ken_copy from '/home/dbadmin/file.txt' delimiter ';'
- ueditor编辑器中从word中复制带图片的信息的操作演示
我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...
- CSS入门基础学习一
一.CSS样式 1.什么是CSS: CSS是指层叠样式表(Cascading Style Sheels),CSS通常为CSS样式表或层叠样式表,主要用于设置HTML文本内容,以及版本面的布局等 2.H ...
- Oracle数据库一些操作信息
Oracle数据库如何查看当前用户角色权限及默认表空间查看当前用户的一些信息,包括用户拥有的角色权限信息.用户表空间以及用户和默认表空间的关系等--查看用户的角色权限1.查看当前用户拥有的角色权限信息 ...