前段时间用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 启动脚本的更多相关文章

  1. jar启动脚本shell

    #!/bin/bash#这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=/opt/server/msp/health-api/health-2.0.2.jar#使用说明,用来提示输入 ...

  2. springboot之jar运行脚本

    一.现在的工程都将就独立和简单了,我们在使用springboot做开发或者其他框架做开发时,在linux上面执行的时候.总会写一下脚本,目的当然是为了更加好的运行程序.不然每次都手动输入一下命令,来调 ...

  3. 一篇关于Maven项目的jar包Shell启动脚本

    使用Maven作为项目jar包依赖的管理,常常会遇到命令行启动,笔者也是哥菜鸟,在做微服务,以及服务器端开发的过程中,常常会遇到项目的启动需要使用main方法,笔者潜心的研究了很多博客,发现大多写的都 ...

  4. SpringBoot项目打包成jar后,启动脚本

    将springboot项目打包成jar后,上传至服务器,每次都需要手敲命令,重新部署项目,可将这些命令写入脚本中,直接运行. 启动脚本(start.sh): CUR_PATH=$(cd "$ ...

  5. (转)springboot应用启动原理(一) 将启动脚本嵌入jar

    转:https://segmentfault.com/a/1190000013489340 Spring Boot Takes an opinionated view of building prod ...

  6. [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

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

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

  8. Selenium2学习-005-WebUI自动化实战实例-003-三种浏览器(Chrome、Firefox、IE)启动脚本源代码

    此文主要通过 三种浏览器(Chrome.Firefox.IE)启动脚本 功能,进行 Selenium2 三种浏览器启动方法的实战实例讲解.文中所附源代码于 2015-01-18 20:33 亲测通过, ...

  9. HBase配置&启动脚本分析

    本文档基于hbase-0.96.1.1-cdh5.0.2,对HBase配置&启动脚本进行分析 date:2016/8/4 author:wangxl HBase配置&启动脚本分析 剔除 ...

随机推荐

  1. sublime下载emmet

    Emmet是一款Web前端开发工具Sublime非常有用的插件,使用仿CSS选择器的语法来生成代码,大大提高了HTML和CSS代码编写的速度.只需按住Tab键即可把一个简写展开成HTML和CSS的代码 ...

  2. PyTorch 手动提取 Layers

    Model NeuralNet( (l0): Linear(in_features=6, out_features=256, bias=True) (relu): ReLU() (bn0): Batc ...

  3. Sklearn----使用决策树预测隐形眼镜类型

    import pandas as pd import pydotplus from sklearn.externals.six import StringIO #LabelEncoder:将字符串转换 ...

  4. 20180711-Java分支结构 – if…else/switch

    public class Test{ public static void main(String args[]){ int x = 10; if(x<20){ System.out .prin ...

  5. Java中POI操作Excel常用方法

    1. https://blog.csdn.net/yjt520557/article/details/82763785 2. https://blog.csdn.net/zxh66/article/d ...

  6. android7.0后对于file://的限制

    错误信息: 04-18 14:56:58.283  4440  4440 W System.err: android.os.FileUriExposedException: file:///stora ...

  7. python中w和wb文件写入的区别!

    一:基本区别:  w:是文本写入 wb:字节写入 windows中换行符是 \r\n w写入文件的时候,遇到 \n 自动替换成  \r\n

  8. npm install 安装不成功,提示python2.7

    npm install 安装不成功的原因 是因为缺少python的环境 解决方法: 1.去官网下载https://www.python.org/download/releases/2.7/ 2.安装成 ...

  9. JSP_01

    1.定义局部变量.输出语句 <!doctype html> <html> <head> <title>定义局部变量.输出语句</title> ...

  10. Altium Designer chapter5总结

    PCB设计环境中需要注意的如下: (1)PCB设计步骤:绘制原理图和生成网表—规划电路板—载入网表—元件布局—制定设计规则—布线—后期处理—DRC检查—信号完整性分析—gerbera文件输出 (2)P ...