1. 环境说明
* CentOS Linux release 8.2.2004 (Core)
2. 配置方式
2.1 运行shell脚本的方式
1)创建脚本
在/usr/bin
目录下创建脚本,比如我的脚本名为/usr/bin/ruoyi-gen.sh
,内容如下:
#!/bin/bash
java -jar /root/xf-service/ruoyi-modules-gen-2.3.0.jar > /root/xf-service/ilogs/modules-gen-`date "+%Y-%m-%d"`.log 2>&1 &
然后为脚本设置执行权限chmod +x /usr/bin/ruoyi-gen.sh
2)添加服务
编辑/etc/systemd/system/ruoyi-gen.service
(点 这里 了解/etc/systemd/system/
与/usr/lib/systemd/system
的区别),文件名最后跟你的服务相关,比如我的叫ruoyi-gen
。内容大体如下:
[Unit]
Description=ruoyi-gen
After=network.target ali-nacos.target ali-sentinel.target ruoyi-gateway.target ruoyi-auth.target
[Service]
Type=forking
ExecStart=/usr/bin/ruoyi-gen.sh
ExecStop=/bin/bash -c "ps -ef | grep ruoyi-modules-system-2.3.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9"
[Install]
WantedBy=multi-user.target
然后重载系统服务文件systemctl daemon-reload
。
参数说明:
Description: 就是当我们使用 systemctl list-units
时,会输出给管理员看的简易说明!当然,使用 systemctl status
输出的此服务的说明,也是这个项目!
After: 说明此unit是在哪个daemon启动之后才启动的意思,指定了服务的启动顺序。
Type: 说明这个daemon启动的方式,会影响到ExecStart,默认值simple。
ExecStart: 就是实际执行此daemon的启动指令或脚本程序。
ExecStop: 就是实际执行此daemon的停止指令或脚本程序。
WantedBy: 说明此unit要挂载哪个target下面,大多的服务性质的unit都是附挂在multi-user.target
下面。
3)服务管理
#启动
sudo systemctl start ruoyi-gen
#查看状态
sudo systemctl status ruoyi-gen
#停止服务
sudo systemctl stop ruoyi-gen
#重启服务
sudo systemctl restart ruoyi-gen
#开机自启
sudo systemctl enable ruoyi-gen
2.2 运行jar包的方式
1)添加服务
编辑/etc/systemd/system/ruoyi-system.service
(点 这里 了解/etc/systemd/system/
与/usr/lib/systemd/system
的区别),文件名最后跟你的服务相关,比如我的叫ruoyi-system
。内容大体如下:
[Unit]
Description=ruoyi-system
After=network.target ali-nacos.target ali-sentinel.target ruoyi-gateway.target ruoyi-auth.target
[Service]
Type=simple
ExecStart=java -jar /root/xf-service/ruoyi-modules-system-2.3.0.jar
StandardOutput=file:/root/xf-service/ilogs/modules-system.log
StandardError=file:/root/xf-service/ilogs/modules-system.log
SyslogIdentifier=ruoyi-modules-system
[Install]
WantedBy=multi-user.target
或者
[Unit]
Description=ruoyi-system
After=network.target ali-nacos.target ali-sentinel.target ruoyi-gateway.target ruoyi-auth.target
[Service]
Type=simple
ExecStart=/bin/bash -c "java -jar /root/xf-service/ruoyi-modules-system-2.3.0.jar > /root/xf-service/ilogs/modules-system.log"
SyslogIdentifier=ruoyi-modules-system
[Install]
WantedBy=multi-user.target
然后重载系统服务文件systemctl daemon-reload
。
2)服务管理
#启动
sudo systemctl start ruoyi-system
#查看状态
sudo systemctl status ruoyi-system
#停止服务
sudo systemctl stop ruoyi-system
#重启服务
sudo systemctl restart ruoyi-system
#开机自启
sudo systemctl enable ruoyi-system
注:这种方式没法动态生成日志文件名。
References: