欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot 项目部署小结

程序员文章站 2022-03-20 11:09:37
...

背景

最近用 SpringBoot 写了一个 web 服务,发现它真的很好用啊,对比原始的手动搭建SpringMVC 框架的繁杂步骤,用 SpringBoot 写一个 web controller 简直太方便了。此外,用它内置的 tomcat ,将应用发布成可执行 jar 包也比较简单,这里整理下部署过程。

项目打包

maven 的 package 命令执行完成后会在 target 目录下得到一个 project_version.jar ,它的本质是一个 Runnable Jar,可以直接通过 java -jar 命令执行。

编写启动脚本

创建一个文件夹,将项目 jar 包放入其中,此外编写一个名为 start.sh 的启动脚本 ,以后台进程的方式启动应用,脚本内容如下:

#!/bin/sh
existPid=`ps -ef|grep project_version.jar|grep -v "grep"|awk '{print $2}'`

if [ "$existPid" != "" ]; then
    echo killing project start.
    kill -9 $existPid
    echo killing project end.
fi

nohup java -Xms256M -Xmx512M -jar project_version.jar 1>/dev/null 2>/dev/null &

脚本重点:
1、确保旧的进程停止,所以先查找进程,如果进程存在就 kill 掉。
2、后台进程的方式启动,且忽略执行日志,使其不输出到 nohup.out 文件中。
因为项目中使用了日志输出框架,默认配置了控制台和文件两种 appender 。如果不加上后面的 dev/null 忽略输出的话,控制台日志就会打印到 nohup.out 文件中,同时又会输出到日志文件,因而造成磁盘空间的浪费。

启示录

“沉舟侧畔千帆过,病树前头万木春”,今天中午看到枯黄的梧桐树上开始长出的嫩叶子,一同事念出了这首诗。

万木逢春,多么美好的时节啊!

相关标签: springboot nohup