文章目录
  1. 部署springboot应用_centOS7

[TOC]

部署springboot应用_centOS7

springboot应用可以使用 init.d/systemd 被轻易的部署为 Unix/Linux 的服务

比如在centos7上使用systemd的方式部署应用服务。
下面是一个多模块的通用脚本, 也可以直接用官网的配置脚本。

  • 已经有一个已经打包好的jar包 (myapp-web-1.0-SNAPSHOT.jar),然后放置在目录 /var/myapp
  • 创建一个服务脚本,如myapp@.service。然后放置到目录 /etc/systemd/system。内容如下,下面是含有 %i 传入myapp.jar 的应用配置参数的,然后是执行脚本 ExecStart中的内容。(当然你的EnvironmentFile可以写死, 或者不存在的话不写也ok)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[Unit]
Description=Starts and stops web service
After=syslog.target

[Service]
EnvironmentFile=/etc/myapp/%i
User=root
Group=root
ExecStart=/usr/local/bin/myapp-startup %i
#Type=forking
SuccessExitStatus=143
SyslogIdentifier=myapp-web

[Install]
WantedBy=multi-user.target
  • myapp-startup脚本编写如下,记得修改成 755 权限:
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

# http://stackoverflow.com/a/6482403
if [ $# -eq 0 ]; then
echo "No module supplied"
exit 1
fi

module=$1

echo $module
echo $JAVA_OPTS >> /var/testparam.log
/var/myapp/myapp-$module-1.0-SNAPSHOT.jar
  • 其次是 /etc/myapp/%i 的配置, 比如叫做 web的文件, 内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
JAVA_HOME=/usr/local/jdk
PID_FOLDER=/var/run/
LOG_FOLDER=/var/log/myapp
JAVA_OPTS= -Xmx512m -Xms512m -server -XX:+AggressiveOpts -XX:+UseFastAccessorMethods \
-Dlogging.file=/var/log/myapp/web.log \
-Ddev \
-Dserver.context-path=/ \
-Dserver.port=8080 \
-Dspring.application.name=myapp \
-Dspring.redis.database=1 \
-Dspring.redis.host=127.0.0.1 \
-Dspring.redis.port=6379 \
-Dspring.datasource.type=com.zaxxer.hikari.HikariDataSource \
-Dspring.datasource.driver-class-name=com.mysql.jdbc.Driver \
-Dspring.datasource.url=jdbc:mysql://127.0.0.1:3306/myapp?useUnicode=true&characterEncoding=UTF8&autoReconnect=true \
-Dspring.datasource.username=root \
-Dspring.datasource.password=123456 \
  • 启动服务
1
systemctl start myapp@web
  • 如果想要开机启动的话,执行
1
systemctl enable myapp@.service

参照官方文档

文章目录
  1. 部署springboot应用_centOS7