Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > CentOS设置自定义服务并开机自启动

CentOS设置自定义服务并开机自启动过程

作者:Marco1XIE

文章介绍了如何编写自定义脚本并将其设置为系统服务,包括设置开机自启动和验证,同时,文章详细解释了systemd服务文件的各个部分及其参数,如Unit、Service和Install部分,帮助读者更好地理解和配置系统服务

1、编写自定义脚本

cat /root/test.sh

#!/bin/bash
#每隔5s打印当前时间并输出到指定文件里
while true
do
  echo "`date '+%Y-%m-%d %H:%M:%S'`" >> /root/a.log
  sleep 5
done

2、将脚本设置成服务

[root@XIEXC ~]# cat /usr/lib/systemd/system/zdy.service
[Unit]
Description=zidingyi-shell            #需修改
After=network.target

[Service]
Type=simple
User=root
ExecStart=/bin/bash /root/test.sh      #需修改,执行的命令
Restart=on-failure

[Install]
WantedBy=multi-user.target

3、设置开机自启动

systemctl start zdy.service #手动开启服务
systemctl enable zdy.service  #设置为开机自启动

查看开机服务项

[root@XIEXC ~]#  systemctl list-unit-files | grep enable | grep zdy*
zdy.service                                   enabled

4、验证

reboot后

tail -f /root/a.log

验证完记得删除此测试服务!!!

附:service文件参数详情

1、Unit部分

[Unit]
Description=zidingyi-shell
After=network.target

是启动顺序与依赖关系

2、Service部分

[Service]
Type=simple
User=root
ExecStart=/bin/bash /root/test.sh
Restart=on-failure

1)Type字段:定义启动类型

2)ExecStart字段:启动服务时执行的命令,可以是可执行程序、系统命令或shell脚本

3)Restart字段:服务程序退出后,Systemd的重启方式

no(默认值):退出后不会重启;on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启

3、Install部分

[Install]
WantedBy=multi-user.target

定义如何安装这个配置文件,即怎样做到开机启动

1)WantedBy字段:表示该服务所在的Target。

(Target的含义是服务组,表示一组服务。WantedBy=multi-user.target指的是,自定义脚本所在的Target是multi-user.target(多用户模式)。这个设置非常重要,因为执行systemctl enable zdy.service命令时,zdy.service会被链接到/etc/systemd/system/multi-user.target.wants目录之中,实现开机启动的功能。)

​总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文