Java项目在Linux系统中的部署通常是以tomcat等容器化的方式部署,或者jar包的形式直接运行。在自动化部署畅行的今天,仍然会有不少的公司采用手动部署的方式部署 jar 包。而微服务打包形成的诸多jar,和上线前后频繁的诸多升级部署操作,让负责项目的开发运维人员叫苦不迭,因此需要一套便捷的部署脚本,实现便捷的一键启停等操作。

1.常用的部署命令:

ps -ef |grep 服务名
kill -9 PID
nohup java -jar 服务名 &
tail -f nohup.out

2.一个简单的一键启停脚本

以下是单个服务的一键启停,如果是多个服务的启停,可以根据以下脚本进行拓展。

#!/bin/sh
port=8080 #端口
jar_name=/app/test/test-admin.jar#运行脚本提示信息
tips(){echo "-------------------------------------"echo ""echo "项目端口: ${port}"echo "项目地址: ${jar_name}"echo ""echo "你可以使用如下参数进行操作"echo "-status -查看当前项目运行状态"echo "-log -查看当前项目运行日志"echo "-start  -启动当前项目"echo "-stop  -停止当前项目"echo "-restart -重启当前项目"echo ""echo "-------------------------------------"
}#查看状态
status(){#查询端口的PIDpid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')#判断端口是否被占用if [ -z "${pid}" ];thenecho "没有项目在运行"elseecho "项目正在运行中"fi
}#启动项目
start(){pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')if [ -z "${pid}" ];thenecho "正在启动......"nohup java -jar $jar_name > logs/catalina.out &elseecho "项目运行中或端口已被占用"fi}#停止项目
stop(){pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')if [ -z "${pid}" ];thenecho "没有项目在运行,请先启动"elsekill -9 $pidecho "已杀死进程为 ${pid} 的应用"fi
}#重启项目
restart(){pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')echo "正在杀死端口 ${port} 的pid ${pid} 中..."if [ -z "${pid}" ];thenecho "项目未启动"elsekill -9 $pidfisleep 5 #睡眠五秒start  #调用启动方法echo "项目重启成功!"
}# 滚动打印日志
printLog(){tail -f logs/catalina.out
}#参数选项
case "$1" in"-status")status;;"-start")start;;"-stop")stop;;"-log")printLog;;"-restart")restart;;*)tips;;
esac

3.将文件转成unix格式

sed -i 's/\r$//' test.sh

4.给.sh文件授予可执行权限

chmod +x test.sh

5.脚本启停项目测试

./test.sh -start      启动项目./test.sh -log        查看实时日志./test.sh -stop       停止项目

Linux自定义shell脚本一键启停微服务jar包相关推荐

  1. Linux自定义shell脚本一键启停jar包

    Linux运行jar包脚本,我的 jar包和 .sh文件在同一目录. #!/bin/sh port=8090 #端口 jar_name=ruoyi-admin.jar #/usr/local/ry-v ...

  2. Shell 简单的java微服务jar包 -- 部署脚本

    部署描述: 1.jenkins 通过maven编译成jar 项目包 2.shell 脚本从jenkins机器发布到:目标主机 注释:次脚本没有写jar包的备份,有时间加上 脚本内容: #!/bin/b ...

  3. windows部署微服务jar包 yml_杰克布开源项目,低代码开发框架,Docker快速部署

    代码托管:GitHub和Gitee,国内用户访问Gitee速度快. 系统环境:Win10,JDK8,maven,node,docker. 一,开源技术社区 1,JeecgBoot 基于代码生成器的低代 ...

  4. linux怎么监控守护进程,linux shell脚本守护进程监控svn服务

    最近搭建的svn服务不知道什么原因服务总是被关闭(如果你不知道怎么搭建svn可以参考linux下搭建svn版本控制软件),因此用shell脚本实现一个守护进程.用于监控svn服务是否启动,如果服务不在 ...

  5. Linux之shell脚本编程

    Linux之shell脚本编程 编程介绍 shell 介绍 shell 脚本编程介绍 shell脚本命令 shell 编程基础知识 编程介绍 计算机编程的本质:输入.运算.输出 编译型语言: 程序在执 ...

  6. shell脚本一键安装二进制Apache

    转载来源 :shell脚本一键安装二进制Apache : http://www.178linux.com/23401 安装背景:用的一台最小化安装的centos6. 编译安装安装的必备安装gcc,gc ...

  7. shell脚本一键装机(pxe配合kickstart无人值守)

    shell脚本一键装机(pxe配合kickstart无人值守) shell脚本实现无人值守安装 图文详细步骤可以参前期博文: PXE批量网络装机(超详细实验教程)教会你自动化批量安装linux 系统 ...

  8. Linux 常用Shell脚本,后端开发必备

    Linux 常用Shell脚本,后端开发必备 文章目录 Linux 常用Shell脚本,后端开发必备 1 用户猜数字 2 查看有多少远程的 IP 在连接本机 3 helloworld 4 打印 tom ...

  9. Linux系统shell脚本之函数的使用

    Linux系统shell脚本之函数的使用 一.函数解释 二.函数参数 1.参数注意事项 2.特殊参数说明 三.函数实例1 四.函数实例2 一.函数解释 1.函数(function)作用:函数可以在sh ...

最新文章

  1. 【怎样写代码】参数化类型 -- 泛型(五):泛型类
  2. 架构师必看 京东咚咚架构演进
  3. jzoj3801-[NOIP2014模拟8.23]骰子【数学期望】
  4. java开发实战经典答案百度云,含面试题+答案
  5. 【转】excel表格导出集锦repeater实用,和普通用法
  6. 生活中的计算机趣味知识大全,五个有趣的电脑小知识
  7. Mac常用开源软件与下载链接一览
  8. postman传递数组参数
  9. 测试-关于Unity获取子层级内容的几种接口(Transform FindChild, Component GetComponentInChildren,...)...
  10. Cadence Allegro剪断走线图文教程及视频演示
  11. HPGL(PLT文件格式)文件解析及VS2017工程源码
  12. 计算机装系统找不到硬盘分区,解决安装系统找不到硬盘的问题(图文)
  13. CSDN论坛--提问的智慧
  14. 自学Java day24 一篇文章弄懂mySQL基础命令 从jvav到架构师
  15. 【神经网络】Pytorch构建自己的训练数据集
  16. java计算机毕业设计基于安卓Android/微信小程序的校园闲置二手交易平台APP
  17. 总谐波失真80_如何将总谐波失真(THD)控制着10%以下?
  18. html如何做交互效果,12个创新的网页界面交互和动画效果
  19. zynq PS端通过EMIO访问PL资源
  20. 移动端游戏开发:差异、挑战,以及全新的解决方案

热门文章

  1. 吴裕雄--天生自然 Tensorflow卷积神经网络:花朵图片识别
  2. 5分钟商学院-个人篇-高效能人士的素养
  3. 面具busybox模块_利用busybox制作initramfs
  4. java properties 参数_Java中Properties 类的详细使用
  5. 贝叶斯公式(Bayesian)的学习
  6. 老域名值不值得购买?买老域名需要注意啥?
  7. char int 取值范围
  8. 批量获取宽带用户的用户名与密码教程
  9. iptable 链表
  10. 《NFL星计划》:巴尔的摩乌鸦·橄榄1号位