当前位置:   article > 正文

Linux自定义shell脚本一键启停微服务jar包_微服务shell一键启动脚本

微服务shell一键启动脚本

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

1.常用的部署命令:

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

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

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

  1. #!/bin/sh
  2. port=8080 #端口
  3. jar_name=/app/test/test-admin.jar
  4. #运行脚本提示信息
  5. tips(){
  6. echo "-------------------------------------"
  7. echo ""
  8. echo "项目端口: ${port}"
  9. echo "项目地址: ${jar_name}"
  10. echo ""
  11. echo "你可以使用如下参数进行操作"
  12. echo "-status -查看当前项目运行状态"
  13. echo "-log -查看当前项目运行日志"
  14. echo "-start -启动当前项目"
  15. echo "-stop -停止当前项目"
  16. echo "-restart -重启当前项目"
  17. echo ""
  18. echo "-------------------------------------"
  19. }
  20. #查看状态
  21. status(){
  22. #查询端口的PID
  23. pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')
  24. #判断端口是否被占用
  25. if [ -z "${pid}" ];then
  26. echo "没有项目在运行"
  27. else
  28. echo "项目正在运行中"
  29. fi
  30. }
  31. #启动项目
  32. start(){
  33. pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')
  34. if [ -z "${pid}" ];then
  35. echo "正在启动......"
  36. nohup java -jar $jar_name > logs/catalina.out &
  37. else
  38. echo "项目运行中或端口已被占用"
  39. fi
  40. }
  41. #停止项目
  42. stop(){
  43. pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')
  44. if [ -z "${pid}" ];then
  45. echo "没有项目在运行,请先启动"
  46. else
  47. kill -9 $pid
  48. echo "已杀死进程为 ${pid} 的应用"
  49. fi
  50. }
  51. #重启项目
  52. restart(){
  53. pid=$( ps -ef |grep $jar_name |grep 'java -jar'|grep -v grep|awk '{print $2}')
  54. echo "正在杀死端口 ${port} 的pid ${pid} 中..."
  55. if [ -z "${pid}" ];then
  56. echo "项目未启动"
  57. else
  58. kill -9 $pid
  59. fi
  60. sleep 5 #睡眠五秒
  61. start #调用启动方法
  62. echo "项目重启成功!"
  63. }
  64. # 滚动打印日志
  65. printLog(){
  66. tail -f logs/catalina.out
  67. }
  68. #参数选项
  69. case "$1" in
  70. "-status")
  71. status
  72. ;;
  73. "-start")
  74. start
  75. ;;
  76. "-stop")
  77. stop
  78. ;;
  79. "-log")
  80. printLog
  81. ;;
  82. "-restart")
  83. restart
  84. ;;
  85. *)
  86. tips
  87. ;;
  88. esac

3.将文件转成unix格式

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

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

chmod +x test.sh

5.脚本启停项目测试

 

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

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号