美文网首页Linux
Centos7 自定义systemd service服务和开机启

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

作者: SimpleEasy | 来源:发表于2019-07-07 13:39 被阅读0次

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

    相关文章

      网友评论

        本文标题:Centos7 自定义systemd service服务和开机启

        本文链接:https://www.haomeiwen.com/subject/jjubhctx.html