问题标签 [systemd-timer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
38 浏览

systemd - systemd 服务未被其计时器单元触发

这是我的服务单元定义

及其定时器单元文件

我暂时将 设置OnCalendar*-*-* 10:33:00(后跟 a sudo systemctl daemon-reload)但是当我在看我的机器时,我没有看到服务触发。我也将它设置为凌晨 5 点,但今天早上我没有看到处决的证据

当我执行手册sudo systemctl start myservice时,它按预期工作。

什么可能会阻止服务按照其timer计划执行?

0 投票
1 回答
64 浏览

linux - systemd 计时器在未指定时间运行

我正在运行sync.timersync.service单元文件systemd 245 (245.4-4ubuntu3.13)。该服务运行一个简单的 curl 脚本 ( /bin/sync.sh),并计划在美国东部标准时间凌晨 1 点至凌晨 3 点之间的某个时间通过计时器每晚运行。

这些已在过去几天设置如下:

当我最初创建这些单元文件时,它按预期在第二天07:45:14 UTC(美国东部标准时间 02:45 AM)运行。但是,该服务从第 2 天开始以某种方式在 00:02:xx UTC 运行,而不是在指定的时间范围内(请注意计时器LAST06:42:14 UTC( 01:42 AM EST)的位置是正确journalctl的,但服务单元表示它在00:02:26 UTC最近一次运行时运行)

我有几个问题:

  1. 当计时器仍按计划运行时,为什么ACTIVATELEFT列具有价值?n/a
  2. 为什么同步服务日志的时间戳 (00:02 AM UTC) 与计时器的LAST列 (06:42 AM UTC) 不匹配?
  3. 为什么同步服务在 2AM UTC 重复运行?

编辑:将计时器的配置更新为以下但仍然看到相同的行为:

0 投票
0 回答
42 浏览

systemd - 无需手动启动或重新启动服务器即可安排首次启动的 Systemd 计时器

背景

我有多个(30 多个)自定义服务/计时器,它们具有相同的结构(在内容部分下方),但时间不同。它们必须仅在计划时执行,并且不能在随机时间手动运行。这些作业背后的应用程序经常更新,并且在更新期间,这些作业必须在更新后禁用/停止并重新启用/按计划启动。

问题

我创建了新的 systemd 计时器/服务文件并将它们放在/etc/systemd/system/. 如何在不手动启动计时器或重新启动服务器的情况下根据 OnCalendar 安排它首次启动?

内容

我有一个服务文件:

以及相应的计时器:

它们被放入,/etc/systemd/system/然后我运行以下命令来启用计时器:

如果我运行systemctl list-timers --all 'dummy*',输出如下所示,并且计时器永远不会执行..

我可以让它按计划开始运行的唯一方法是重新启动服务器(这不是一个选项)或通过手动启动计时器systemctl start dummy.timer,这也不是我需要的。

我一直在寻找解决方案已经有一段时间了,我能找到的只是手动启动或重新启动。找到任何 SystemD 手册页...

我采用的解决方法是使用systemd-analyze calendar读取下一个运行时间,date将其转换为 %Y%m%d%H%M 格式,然后使用 linuxat命令安排它。这远非优雅,并且对于每周或每月运行一次的作业存在问题,并且在应用程序更新后和预定运行时间之前重新启动服务器。

有任何想法吗?

谢谢!

0 投票
0 回答
19 浏览

timer - 紧接着执行计时器

我希望 apt-update 计时器在周日晚上 4:30 到 5:30 之间运行,然后是 apt-upgrade 计时器。我有这些设置:

但有时会发生这种情况:

Systemd 忽略该选项After=apt-daily.timer。我怎样才能解决这个问题?