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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值