我是靠谱客的博主 呆萌鲜花,最近开发中收集的这篇文章主要介绍Systemd基础:5:定时器Timer的实现示例场景介绍服务示例Timer示例daemon-reload重新加载创建workingdirectoryenable 计时器启动计时器确认状态结果确认参考文章,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在这里插入图片描述
在前面的文章中对于[service]的介绍中提到,并非所有的systemd配置文件都有此段的设定,本文将介绍一下在Systemd下使用定时器的方式。

场景介绍

在这个示例中将会通过一个计时器和一个服务进行关联,达到每分钟调用的目的。服务使用前面文章中所

服务示例

[root@liumiaocn system]# cat liumiaocn.service 
[Unit]
Description=Systemd Service Sample By liumiaocn
Documentation=https://liumiaocn.blog.csdn.net/

[Service]
WorkingDirectory=/tmp/systemd_working_dir
ExecStart=/bin/sh -c '/usr/bin/echo "hello world" >>/tmp/systemd_working_dir/hello.log'

[Install]
WantedBy=multi-user.target
[root@liumiaocn system]#

Timer示例

[root@liumiaocn system]# cat liumiaocn.timer 
[Unit]
Description=Systemd Sample: say hello every min

[Timer]
OnCalendar=*-*-* *:*:00
Unit=liumiaocn.service

[Install]
WantedBy=timers.target
[root@liumiaocn system]#

代码说明:

  • 文件名称以timer为后缀,可以清楚地确认出其计时器的作用
  • 通过Unit与执行的服务进行关联
  • 简单的情况下可以直接设定OnCalendar进行设定

OnCalendar的设定格式示例

日期格式OnCalendar设定格式
Sat,Thu,Mon-Wed,Sat-SunMon-Thu,Sat,Sun --* 00:00:00
Mon,Sun 12-- 2,1:23Mon,Sun 2012-- 01,02:23:00
Wed *-1Wed --01 00:00:00
Wed-Wed,Wed *-1Wed --01 00:00:00
Wed, 17:48Wed --* 17:48:00
Wed-Sat,Tue 12-10-15 1:2:3Tue-Sat 2012-10-15 01:02:03
--7 0:0:0--07 00:00:00
10-15*-10-15 00:00:00
monday -12- 17:00Mon -12- 17:00:00
Mon,Fri --3,1,2 *:30:45Mon,Fri --01,02,03 *:30:45
12,14,13,12:20,10,30--* 12,13,14:10,20,30:00
mon,fri *-1/2-1,3 *:30:45Mon,Fri *-01/2-01,03 *:30:45
03-05 08:05:40*-03-05 08:05:40
08:05:40--* 08:05:40
05:40--* 05:40:00
Sat,Sun 12-05 08:05:40Sat,Sun *-12-05 08:05:40
Sat,Sun 08:05:40Sat,Sun --* 08:05:40
2003-03-05 05:402003-03-05 05:40:00
2003-03-052003-03-05 00:00:00
03-05*-03-05 00:00:00
hourly--* *:00:00
daily--* 00:00:00
monthly--01 00:00:00
weeklyMon --* 00:00:00
*:20/15--* *:20/15:00

daemon-reload重新加载

[root@liumiaocn ~]# systemctl daemon-reload
[root@liumiaocn ~]#

创建workingdirectory

[root@liumiaocn ~]# mkdir -p /tmp/systemd_working_dir
[root@liumiaocn ~]# ls /tmp/systemd_working_dir
[root@liumiaocn ~]#

enable 计时器

[root@liumiaocn system]# systemctl enable liumiaocn.timer 
Created symlink from /etc/systemd/system/timers.target.wants/liumiaocn.timer to /usr/lib/systemd/system/liumiaocn.timer.
[root@liumiaocn system]# 

启动计时器

[root@liumiaocn system]# systemctl start liumiaocn.timer
[root@liumiaocn system]# 

确认状态

[root@liumiaocn system]# systemctl is-enabled liumiaocn.timer
enabled
[root@liumiaocn system]# 
[root@liumiaocn system]# systemctl is-active liumiaocn.timer
active
[root@liumiaocn system]# 

结果确认

等几分钟后,通过重定向的文件可以看到timer的多次执行结果

[root@liumiaocn system]# cat /tmp/systemd_working_dir/hello.log 
hello world
hello world
hello world
[root@liumiaocn system]# 

参考文章

https://www.certdepot.net/rhel7-use-systemd-timers/

最后

以上就是呆萌鲜花为你收集整理的Systemd基础:5:定时器Timer的实现示例场景介绍服务示例Timer示例daemon-reload重新加载创建workingdirectoryenable 计时器启动计时器确认状态结果确认参考文章的全部内容,希望文章能够帮你解决Systemd基础:5:定时器Timer的实现示例场景介绍服务示例Timer示例daemon-reload重新加载创建workingdirectoryenable 计时器启动计时器确认状态结果确认参考文章所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部