Systemd timer 定时器实现秒级定时器

09-12 16:06 字数 1359 阅读 96 已编辑
# cd /usr/lib/systemd/system

编写 test-timer.service

[Unit]
Description=test timer

[Service]
Type=simple
ExecStart=/home/www/test-timer.sh

编写 test-timer.timer

[Unit]
Description=test timer

[Timer]
# 多久之后开始执行
OnActiveSec=60
# 每隔多少秒执行
OnUnitActiveSec=10
Unit=test-timer.service

[Install]
WantedBy=multi-user.target

timer 参数说明

  • OnActiveSec= 表示相对于本单元被启用的时间点
  • OnBootSec= 表示相对于机器被启动的时间点
  • OnStartupSec= 表示相对于systemd被首次启动的时间点
  • OnUnitActiveSec= 表示相对于匹配单元(本标签下Unit=指定的单元)最后一次被启动的时间点
  • OnUnitInactiveSec= 表示相对于匹配单元(本标签下Unit=指定的单元)最后一次被停止的时间点

启动任务

# systemctl daemon-reload  # 重新加载服务
# systemctl enable test-timer.timer 
Created symlink from /etc/systemd/system/multi-user.target.wants/test-timer.timer to /usr/lib/systemd/system/test-timer.timer.
# systemctl start test-timer.timer

查看状态

# systemctl status test-timer.timer
● test-timer.timer - test timer
   Loaded: loaded (/usr/lib/systemd/system/test-timer.timer; enabled; vendor preset: disabled)
   Active: active (waiting) since Sat 2020-09-12 15:54:31 CST; 21s ago

Sep 12 15:54:31 iZhp3iuwugw5g1on7zv932Z systemd[1]: Started test timer.

关闭定时任务

# systemctl disable test-timer.timer #关闭开机启动(即删除目录链接)
# systemctl stop test-timer.timer # 关闭单元
# systemctl stop test-timer.service

之后删除timer 和Service文件

# systemctl daemon-reload # 重新加载配置

参考链接 http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html

2人点赞>
关注 收藏 改进 举报
0 条评论
排序方式 时间 投票
快来抢占一楼吧
请登录后发表评论
站长 @ 十七度
文章
327
粉丝
21
喜欢
157
收藏
22
排名 : 1
访问 : 75.51万
私信