Linux

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

2019-07-07  本文已影响0人  SimpleEasy

        本文以设置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

上一篇下一篇

猜你喜欢

热点阅读