Centos7 自定义systemd service服务和开机启动

 本文以设置spark-test.jar的服务和开机启动为例,操作系统为Centos7。centos7之前不能使用该方式。

第一步,编写jar的启动脚本spark-test-start.sh

#!/bin/sh

source /etc/profile

nohup java -jar /data/sparkdemo/target/spark-test.jar &

echo $! > /var/run/spark-test-service.pid

注意加载环境变量,否则可能出现找不到java命令。并给脚本授予可以执行的权限,chmod +x spark-test-start.sh

第二步,编写jar的停止脚本spark-test-stop.sh,并给脚本授予可执行权限,chmod +x spark-test-stop.sh,脚本内容如下。

#!/bin/sh

PID=$(cat /var/run/spark-test-service.pid)

kill -9 $PID

第三步,编写systemd service服务脚本spark-test-service.service

#!/bin/sh

[Unit]

Description=spark-test-service  #自定义服务的描述

After=syslog.target network.target remote-fs.target nss-lookup.target #依赖这些服务先启动后,自定义服务才启动

[Service]

Type=forking  #ExecStart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。

ExecStart=/data/sparkdemo/target/spark-test-start.sh #服务启动运行的脚本

ExecStop=/data/sparkdemo/target/spark-test-stop.sh #服务停止运行的脚本

PrivateTmp=true

[Install]

WantedBy=multi-user.target #定义如何安装这个配置文件,即怎样做到开机启动。

第四步,将spark-test-service.service 复制到/usr/lib/systemd/system/spark-test-service.service 目录中,并赋予可执行权限,chmod +x spark-test-service.service 。至此,服务配置完毕。

第五步,运行服务的常用命令。

启动服务:systemctl start spark-test-service.service

停止服务:systemctl stop spark-test-service.service

重启服务:systemctl restart spark-test-service.service

查看服务:systemctl status spark-test-service.service

加入开机启动:systemctl enable spark-test-service.service

禁止开机启动:systemctl disable spark-test-service.servie

重载服务:systemctl reload spark-test-service.service

对systemd service的配置项说明:可以参考博客https://www.cnblogs.com/yanwanglol/p/10029619.html



作者:SimpleEasy
链接:https://www.jianshu.com/p/f8e822c0a5c9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

你可能感兴趣的:(Linux)