Linux部署springboot项目创建守护进程

方式一:Systemd创建守护进程

我们只需要新增一个配置文件即可,也就是使用 Systemd 来完成这些工作。

springboot打包好的jar包, 比如 weoj.jar 下面我们来创建他的守护进程

# 创建 weoj.service
sudo vim /etc/systemd/system/weoj.service

在里面插入

[Unit]
Description=Weoj Service
Documentation=https://xxx.xxx
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar # YOUR_JAR_PATH #
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

参数:

  • -Xms256m:为 JVM 启动时分配的内存,请按照服务器的内存做适当调整,512 M 内存的服务器推荐设置为 128,1G 内存的服务器推荐设置为 256,默认为 256。
  • -Xmx256m:为 JVM 运行过程中分配的最大内存,配置同上。
  • YOUR_JAR_PATH:Halo 安装包的绝对路径,例如 /www/wwwroot/weoj.jar

提示

  1. 如果你不是按照上面的方法安装的 JDK,请确保 /usr/bin/java 是正确无误的。
  2. systemd 中的所有路径均要写为绝对路径,另外,~ 在 systemd 中也是无法被识别的,所以你不能写成类似 ~/weoj.jar 这种路径。
  3. 如何检验是否修改正确:把 ExecStart 中的命令拿出来执行一遍。
# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload

# 使 weoj 开机自启
sudo systemctl enable weoj

# 启动 weoj
sudo service weoj start

# 重启 weoj
sudo service weoj restart

# 停止 weoj
sudo service weoj stop

# 查看 weoj 的运行状态
sudo service weoj status

方式二:nohup 和 &(推荐)

application.properties 为配置文件 里面可以修改端口信息

# 服务端口

server.port=8888

# 数据库信息

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/exam?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai

spring.datasource.username=root

spring.datasource.password=root

进入上面的路径

保证exam.jar 和 application.properties 同一个路径下。

部署

exam.log 为日志输出

nohup java -jar weoj.jar >exam.log 2>&1 &