Centos7自定义系统服务

本文以一个Java的jar包服务,演示如何自定义一个系统服务。

 

一、编写服务脚本

以nursed服务为例:

进入 /usr/lib/systemd/system, 新建nursed.service文件,写入如下内容。

[Unit]
#服务描述
Description=Nursed Service
#设置在某个服务启动后启动:这里为指mysql服务启动后再启动本服务
After=network.target mysqld.service
​
[Service]
#后台运行的形式
Type=forking
#启动命令,执行该脚本
ExecStart=/usr/nursed/start-nursed.sh
#重启命令,执行该脚本
ExecReload=/usr/nursed/restart-nursed.sh
#停止命令,执行该脚本
ExecStop=/usr/nursed/stop-nursed.sh
#启动失败时,执行重启命令
Restart=on-failure
PrivateTmp=true
​
[Install]
WantedBy=multi-user.target
启动脚本:start-nursed.sh
#!/usr/bin/env bash
​
nohup java -jar /usr/nursed/nursed-1.0.0-SNAPSHOT.jar >/dev/null 2>/var/log/nursed/errors.log &
停止服务脚本:stop-nursed.sh
#!/usr/bin/env sh
​
kill -9 $(ps aux | grep nursed-1.0 | awk 'NR==1{print $2}')
重启服务脚本:restart-nursed.sh
#!/usr/bin/env sh
​
./stop-nursed.sh
./start-nursed.sh

Centos7自定义系统服务_第1张图片

二、加载服务并设置启动

systemctl reload *.service #重新加载服务配置文件
​
然后就可以启动服务了,
​
systemctl start nursed.service即可
​
设置开机启动: systemctl enable nuresd.service

三、常用命令介绍

systemctl常见命令:
​
systemctl is-enabled servicename.service #查询服务是否开机启动
systemctl enable *.service #开机运行服务
systemctl disable *.service #取消开机运行
systemctl start *.service #启动服务
systemctl stop *.service #停止服务
systemctl restart *.service #重启服务
systemctl reload *.service #重新加载服务配置文件
systemctl status *.service #查询服务运行状态
systemctl --failed #显示启动失败的服务

 

你可能感兴趣的:(Java,Linux)