2020-12-12

设置开机启动项-springboot项目注册为Linux系统服务并设置开机自启动springboot项目注册为Linux的服务并设置开机自启动

上一篇我们讲到了springboot项目注册为windows系统服务并设置开机自启。

一般项目生产环境都在Linux上面跑,所以今天我们来讲一下如何在Linux中将springboot项目注册为系统服务并设置开机自启动,这里我们以Centos7.6为例。

1、上传我们的springboot项目的jar包

如下图所示:

名为demo-0.0.1-SNAPSHOT.jar
在这里插入图片描述

2、 启动项目

java -jar demo-0.0.1-SNAPSHOT.jar
在这里插入图片描述

补充:

可能存在极少数是这样(或者类似)来启动springboot项目,其实这里的这种方式启动跟window中开启cmd窗口启动类似,这里不能退出交互,例如:Ctrl+C就会被kill掉。所以,比较好的一种方案,就是将springboot项目注册为Linux系统服务。

3、 基于Linux的Systemd部署springboot项目

(1)关于systemd简单介绍:

systemd是Linux 下一个与SysV和LSB初始化脚本兼容的系统和服务管理器。systemd 使用 socket和D-Bus来开启服务,提供基于守护进程的按需启动策略,保留了Linux cgroups的进程追踪功能,支持快照和系统状态恢复,维护挂载和自挂载点,实现了各服务间基于从属关系的一个更为精细的逻辑控制,拥有前卫的并行性能。systemd无需经过任何修改便可以替代sysvinit 。

补充:

关于systemd的更多内容请参考:

https://fedoraproject.org/wiki/Systemd/zh-cn

(2) 编写service文件

配置文件主要放在/usr/lib/systemd/system下,在/etc/systemd/system也有。

这里我们以/etc/systemd/system为例:
在这里插入图片描述

cat demo.service

这里的这个demo.service是我之前写好的
在这里插入图片描述

内容如下,比较简单:

[Unit]

Description=java springboot service

After=syslog.target

[Service]

ExecStart=/general/jdk1.8/bin/java -jar /general/demo-0.0.1-SNAPSHOT.jar

[Install]

WantedBy=multi-user.target

简单的解释:

[Unit]:启动顺序与依赖关系

Description:当前服务的简单描述。

After:如syslog.target需要启动,那么demo.service应该在它之后启动。

[Service]:启动行为

ExecStart:定义启动进程时执行的命令。

如:/general/jdk1.8/bin/java -jar /general/demo-0.0.1-SNAPSHOT.jar。

[Install]

WantedBy:表示该服务所在的Target(服务组)。

补充:

这里可以查看multi-user.target包含的所有服务,如下:

systemctl list-dependencies multi-user.target

(3) 、启动服务

#启动

systemctl start demo.service

#查看服务状态
在这里插入图片描述

systemctl status demo.service

(4) 、查看日志

journalctl -u demo

-u:查看指定名字的Unit日志

关于journalctl命令大家自行man。
在这里插入图片描述

亦可

journalctl -u demo -f
在这里插入图片描述

(5) 访问web界面

#查看ip

ip a
在这里插入图片描述

访问
在这里插入图片描述

(6)设置开机自启动

#开机启动

systemctl enable demo.service

#查看是否设置成功

[root@docker ~]# systemctl list-unit-files | grep enabled | grep demo

demo.service enabled
在这里插入图片描述

(7)总结

最后,本例用到的demo.service文件仅是作为测试文件,这里只是给大家提供一个思路。关于它的完善需要大家根据自己的需求来填充。

补充一些常用命令:

开机自启:systemctl enable demo.service

关闭自启:systemctl disable demo.service

启动服务:systemctl start demo.service

停止服务:systemctl stop demo.service

重启服务:systemctl restart demo.service

查看服务状态:systemctl status demo.service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值