Centos7 注册Springboot jar包为系统服务并设置开机自启

/ 0评 / 0

Centos7 注册服务并设置开机自启

部署项目时,在一些情况下,服务器并不是长期的不停机,最好能设置应用开机自启,这里介绍一下jar包为Centos7系统服务,并设置开机自启的过程。

1、前置条件:

服务器已经安装好了JDK/JRE环境,并已经配置好了PATH环境,可以输入以下命令检测

echo $JAVA_HOME
echo $JRE_HOME

如果正常输出了环境变量,可进行后续操作

2、创建服务启动脚本

以下目录可以自定义,这里我就在/usr/local下新建个文件夹

mkdir /usr/local/javaserv/
touch /usr/local/javaserv/javaserv-service-start
chmod 755 /usr/local/javaserv/javaserv-service-start

3、编辑启动脚本

vim /usr/local/javaserv/javaserv-service-start

启动脚本内容如下

#!/bin/sh
export JAVA_HOME=/opt/jdk1.8.0_152
export JRE_HOME=/opt/jdk1.8.0_152/jre
echo start javaserv service
java -Xms128m -Xmx512m -jar /mnt/javaserv-serv-0.1.jar 5 > /mnt/javaserv-service.log &
echo $! > /var/run/javaserv-service.pid

4、创建服务停止脚本

touch /usr/local/javaserv/javaserv-service-stop
chmod 755 /usr/local/javaserv/javaserv-service-stop

5、编辑服务停止脚本

vim /usr/local/javaserv/javaserv-service-stop

停止脚本内容如下

#!/bin/sh  
PID=$(cat /var/run/javaserv-service.pid)  
kill -9 $PID

6、编写系统服务脚本

在/usr/lib/systemd/system 下 编写 javaserv-service.service 脚本

vim /usr/lib/systemd/system/javaserv-service.service

脚本内容如下

[Unit]
Description=javaserv-service
After=syslog.target network.target remote-fs.target nss-lookup.target mysqld.service

[Service]
Type=forking
ExecStart=/usr/local/javaserv/javaserv-service-start
ExecStop=/usr/local/javaserv/javaserv-service-stop
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注意:如果jar包使用到了数据库,例如mysql数据库,要让jar服务排在mysql服务后启动,否则可能会因为连接数据库失败而启动失败

[Unit]中After里配置上mysqld,即可让jar包服务在mysql服务启动后再启动

[Unit]
Description=javaserv-service
After=syslog.target network.target remote-fs.target nss-lookup.target mysqld.service

7、服务设置开机自启

通过如下命令启动、关闭服务,并设置开机自启动

#开机自启动
systemctl enable javaserv-service 
#启动
systemctl start javaserv-service  
#停止
systemctl stop javaserv-service

发表评论

电子邮件地址不会被公开。 必填项已用*标注