「systemd」- Timer:由systemd提供的定时任务 @20210312

该文章概述了在systemd中使用Timer来设置定时任务的方法,并提及了一些细节上的东西。

!!!这篇文章是一个概要,而不是一份详细的教程。

在Linux中,任务调度器Cron广为认知。但是Cron的粒度只能控制到分钟,不能到秒,但是systemd的Timer可以。

第一步、创建单元文件

创建Timer单元文件。假设以mytimer.timer为文件名,格式大体如下:

[Unit]
Description=Runs mytimer every hour

[Timer]
OnUnitActiveSec=1h
Unit=mytimer.service

[Install]
WantedBy=multi-user.target

如上所示,在systemd的Timer单元文件中,它并不包含具体要执行的命令,而是指定了一个要执行的Service单元。比如,上面的mytimer.service单元,该Service单元文件中包含了具体要执行的任务,所以你要先创建Service单元文件。这里就不再展开。

该mytimer.tiemr文件要放在/etc/systemd/system目录中。

第二步、启动定时任务

同样的,执行sytemctl start mytimer.timer来启动定时任务。

如果要开机自启动,则可以执行systemctl enable mytimer.timer命令。

常见问题

#1 定时任务没有立即启动

执行systemctl start foo.timer以后,没有立即执行对应的单元,原因参考「Systemd timer not starting its service unit」一文。

解决办法
在foo.timer单元文件的[Unit]部分加入Requires=bar.service部分。

相关文章

「Cron」- 使用技巧
「Cron」- 安装及注意事项
「crontab」- 周期任务的配置文件

参考文献

Systemd 定时器教程
如何使用 systemd 中的定时器
linux基础命令介绍十四:定时任务
systemd.timer 中文手册
Systemd 定时器教程
如何使用 systemd 中的定时器
systemd/Timers

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值