Spring Boot应用注册为Linux的服务

Linux下运行的软件通常把他注册为服务,这样就可以通过命令开启、关闭以及保持开机启动等功能。
若想让spring-boot应用也能使用此项功能,需要将spring-boot-maven-plugin的配置修改为:

1
2
3
4
5
6
7
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<executable>true</executable>
</configuration>
</plugin>

然后使用mvn package打包。

主流的Linux大多使用init.d或systemd来注册服务。下面以Centos6.6演示init.d注册服务;以Centos7.1演示systemd注册服务。

用SSH将jar包上传的到Centos的/var/apps下。

  • 安装JDK

从Oracle官网下载JDK,选择红帽系专用安装包格式。将JDK下载放置到Linux下任意目录。

执行下面的命令安装:

1
rpm -ivh jdk-8u51-linux-x64.rpm
  • 基于Linux的init.d部署

注册服务,在Centos6.6的终端执行:

1
sudo ln -s /var/apps/mapp-0.0.1-SNAPSHOT.jar /etc/init.d/mapp

其中mapp就是我们的服务名

启动服务:service mapp start
停止服务:service mapp stop
服务状态:service mapp status
开机启动:chkconfig mapp on

项目日志存放于/var/log/mapp.log下,可用cattail等命令查看

  • 基于Linux的Systemd部署

/etc/systemd/system目录下心间文件mapp.service,填入下面内容

1
2
3
4
5
6
7
8
9
[Unit]
Description=mapp
After=syslog.target
[Service]
ExecStart= /usr/bin/java -jar /var/apps/mapp-0.0.1-SNAPSHOT.jar
[Install]
WantedBy=multi-user.target

注意,在实际使用中修改Description和ExecStart后面的内容

启动服务:systemctl start mappsystemctl start mapp service
停止服务:systemctl stop mappsystemctl stop mapp service
服务状态:systemctl status mappsystemctl status mapp service
开机启动:systemctl enable mappsystemctl enable mapp service
项目日志:journalctl -u mappjournalctl -u mapp service

如果你喜欢我的blog,请鼓励我一杯咖啡☕️
0%