当前位置: 代码网 > 服务器>服务器>Linux > CentOS设置自定义服务并开机自启动过程

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

2026年03月04日 Linux 我要评论
1、编写自定义脚本cat /root/test.sh#!/bin/bash#每隔5s打印当前时间并输出到指定文件里while truedo echo "`date '+%y-%m-%d %h:%m:

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

是启动顺序与依赖关系

  • 1)description字段:给出当前服务的简单描述。
  • 2)after字段:表示本服务应该在某服务之后启动。(after和before字段只涉及启动顺序,不涉及依赖关系。设置依赖关系,需要使用wants字段和requires字段。)
  • 3)wants字段:表示本服务与某服务之间存在“依赖”系,如果被依赖的服务启动失败或停止运行,不影响本服务的继续运行。
  • 4)requires字段,表示本服务与某服务之间存在“强依赖”系,如果被依赖的服务启动失败或停止运行,本服务也必须退出。

2、service部分

[service]
type=simple
user=root
execstart=/bin/bash /root/test.sh
restart=on-failure

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

  • simple(默认值):execstart字段启动的进程为主进程。forking:execstart字段将以fork()方式启动,此时父进程将会退出,子进程将成为主进程。
  • oneshot:类似于simple,但只执行一次,systemd会等它执行完,才启动其他服务。
  • dbus:类似于simple,但会等待d-bus信号后启动。
  • notify:类似于simple,启动结束后会发出通知信号,然后systemd再启动其他服务。
  • idle:类似于simple,但是要等到其他任务都执行完,才会启动该服务。​

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目录之中,实现开机启动的功能。)

​总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com