Spring Boot应用的几三种运行方式:
1.运行Spring Boot的应用主类
2.使用Maven的Spring Boot插件mvn spring-boot:run来运行
3.打成jar包后,使用java -jar XX.jar运行(非后台运行,无法将shell命令行释放,关闭terminal后项目也随之关闭了。)
下面我们分别针对Windows和Linux/Unix两种环境,整理一下如何配置后台运行的方法。
Windows,直接使用这款软件:AlwaysUp
配置方式很简单,我们只需要把Spring Boot应用通过mvn install打成jar包,然后编写一个java -jar yourapp.jar的bat文件。再打开AlwaysUp,点击工具栏的第一个按钮,如下图所示,选择上面编写的bat文件,并填写服务名称。
完成了创建之后,在列表中可以看到我们配置的服务,通过右键选择Start xxx就能在后台将该应用启动起来了。
Linux/Unix(nohup 命令)
用途:不挂断地运行命令。
语法:nohup Command [ Arg … ][ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 &到命令的尾部。
所以,我们只需要使用nohup java -jar yourapp.jar &命令,就能让yourapp.jar在后台运行了。但是,为了方便管理,我们还可以通过Shell来编写一些用于启动应用的脚本,比如下面几个:
关闭应用的脚本:stop.sh
#!/bin/bash
PID=$(ps -ef | grep yourapp.jar | grep -v grep | awk'{ print $2 }')
if[ -z"$PID"]
then
echoApplication is already stopped
else
echokill$PID
kill$PID
fi
启动应用的脚本:start.sh
#!/bin/bash
nohup java -jar yourapp.jar --server.port=8888 &
整合了关闭和启动的脚本:run.sh,由于会先执行关闭应用,然后再启动应用,这样不会引起端口冲突等问题,适合在持续集成系统中进行反复调用。
#!/bin/bash
echostop application
sourcestop.sh
echostart application
sourcestart.sh
原文参照:http://blog.didispace.com/spring-boot-run-backend/
网友评论