【问题标题】:Run timer exactly every second with systemd使用 systemd 每秒准确运行计时器
【发布时间】:2018-05-07 18:01:04
【问题描述】:

如何精确地每秒运行一些服务?允许重叠。

这是我的 systemd 计时器单元:

[Unit]
Description=Send jobs every second

[Timer]
OnBootSec=1min
OnUnitActiveSec=1s
Unit=app.jobs-send.service

[Install]
WantedBy=multi-user.target

app.jobs-send.service 服务并非每秒执行一次:

May 07 17:57:38 app.deployer.org systemd[1]: Started Send jobs to queue.
May 07 17:57:48 app.deployer.org systemd[1]: Starting Send jobs to queue...
May 07 17:57:48 app.deployer.org systemd[1]: Started Send jobs to queue.
May 07 17:57:58 app.deployer.org systemd[1]: Starting Send jobs to queue...
May 07 17:57:58 app.deployer.org systemd[1]: Started Send jobs to queue.
May 07 17:58:08 app.deployer.org systemd[1]: Starting Send jobs to queue...
May 07 17:58:08 app.deployer.org systemd[1]: Started Send jobs to queue.

大约有 17:57:58 - 17:57:48 = 10 秒的间隔。

如何每秒执行任务?

【问题讨论】:

    标签: devops systemd


    【解决方案1】:

    man systemd.time 中所述,OnUnitActiveSec= 的准确性取决于AccuracySec= 设置,也记录在此。设置为AccuracySec=1us 以获得最佳分辨率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      相关资源
      最近更新 更多