该文章概述了在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设置精确到秒的定时任务方法。不同于Cron仅能控制到分钟级别,systemd的Timer提供了更高的时间精度。通过创建Timer单元文件并指定Service单元来执行具体任务,实现开机自启动等功能。
最低0.47元/天 解锁文章
276

被折叠的 条评论
为什么被折叠?



