centos7 自定义自启动service【linux下自启动service】

前提

要自定义一个服务,需要在 /usr/lib/systemd/system/ 下添加一个配置文件:.service
如果 /usr/lib/systemd/system/ 不存在,可考虑使用 /lib/systemd/system/ 或 /etc/systemd/system/
笔者在/etc/systemd/system/目录下定义了long-running-script.service;如下:

[Unit]
Description=Long Running Script Service
After=network.target

[Service]
Type=simple
ExecStart=/home/demo/script.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

配置解释

[Unit]: 服务的启动顺序与依赖关系
Description: 当前服务的简单描述
After: 当前服务(<software-name>.service)需要在这些服务启动后,才启动
Before: 和 After 相反,当前服务需要在这些服务启动前,先启动
Wants:表示当前服务"弱依赖"于这些服务。即当前服务依赖于它们,但是没有它们,当前服务也能正常运行。
Requires: 表示"强依赖"关系,即如果该服务启动失败或异常退出,那么当前服务也必须退出。


[Service] 服务运行参数的设置
Type=forking  后台运行的形式
PIDFile=/software-name/pid   pid文件路径
EnvironmentFile=/xxx/prod.env  通过文件设定环境变量,注意这东西不支持环境变量的插值语法 ${xxx}
WorkingDirectory=/xxx/xxx    工作目录
ExecStartPre  为启动做准备的命令
ExecStart  服务的具体运行命令(对非 workingdirectory 的文件,必须用绝对路径!
ExecReload  重载命令,如果程序支持 HUP 信号的话,通常将此项设为 `/bin/kill -HUP $MAINPID`
ExecStop  停止命令
ExecStartPre:启动服务之前执行的命令
ExecStartPost:启动服务之后执行的命令
ExecStopPost:停止服务之后执行的命令
RuntimeDirectory=xxxx
RuntimeDirectoryMode=0775
PrivateTmp=True  表示给服务分配独立的临时空间
RestartSec  自动重启当前服务间隔的秒数
Restart  定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure 等
# 程序的 user 和 group
User=ryan
Group=ryan


注意:启动、重载、停止命令全部要求使用绝对路径

[Install] 定义如何安装这个配置文件,即怎样做到开机启动。
# Target的含义是服务组,表示一组服务。
WantedBy=multi-user.target

要启动的脚本【/home/demo/script.sh(记得这个路径赋予权限)】如下

#!/bin/sh
while true; do
  date_time=$(date +"%Y-%m-%d %T")
  echo $date_time
  echo $date_time >> /home/demo/test.log
  sleep 2
done

该脚本每两秒输出日期时间并输入到log中

然后执行以下

systemctl daemon-reload #重新加载配置文件
sudo systemctl start long-running-script.service # 启动服务
sudo systemctl enable long-running-script.service # 启用服务,即开机自动启动

效果如下

查看状态

sudo systemctl status long-running-script.service # 检查状态

在这里插入图片描述
在这里插入图片描述

停止服务

 sudo systemctl stop long-running-script.service

在这里插入图片描述

查看所有服务

systemctl list-units --type=service

在这里插入图片描述

取消服务,取消开机启动

systemctl disable ss-server.service  # 取消服务,取消开机启动
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值