将spring boot应用注册为Unix/Linux系统服务
2016-03-16 本文已影响2453人
姜小码
运行Spring Boot应用可以用java -jar
的方式,也可以将应用作为Unix系统(Linux, OSX, FreeBSD 等等)可执行程序,这种方式使的在生产环境下安装和管理Spring boot程序变得异常简单。
修改Maven插件配置创建可执行的jar包:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
Gradle的配置:
apply plugin: 'spring-boot'
springBoot {
executable = true
}
使用init.d
或者systemd
将Spring boot应用启动为Unix/Linux系统服务非常简单。
默认的可执行脚本可以作为init.d
脚本被内置在Spring Boot jar包里,连接到/etc/init.d
,可以使用start
,stop
,restart
和status
命令。该脚本有以下特性:
- 只有jar包所有者可以启动该服务
- 使用
/var/run/<appname>/<appname>.pid
追踪应用的PID - 将控制台的日志写到
/var/log/<appname>.log
假设你的Spring Boot应用安装在/var/myapp
, 使用下面命令将Spring Boot应用作为init.d
服务:
$ sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp