如何为systemd计时器配置结束时间

时间:2015-12-31 16:58:10

标签: timer systemd coreos

我使用CoreOS和SystemD计时器来运行我的报告......

我有一些监控报告,需要在接下来的12个小时内每3小时运行一次,在半小时内运行。如果我想在1230醒来停止报告,这很容易实现。

是否有"终止计时器" systemd计时器中的选项或类似内容>

3 个答案:

答案 0 :(得分:0)

我相信您可以将以下内容添加到服务文件的[Unit]指令中:

JobTimeoutSec=43200

您可能只需编写一个包装脚本,在12小时后终止该过程或使用timeout 12h COMMAND [ARG]...

答案 1 :(得分:0)

您可以简单地编写另一个计划在您想要的关机时间运行的计时器。他们可以运行一个服务,通过在名为shutdown timer的服务文件中运行ExecStart=/bin/systemctl stop other.service来阻止你想要达到顶峰。

我从JobTimeoutSec查看了man systemd.unit的文档,但似乎并不适合这项工作。

答案 2 :(得分:0)

可以在一定时间后终止 systemd 服务。

RuntimeMaxSec 服务使用 Type=simple 选项:

[Unit]
Description=Terminate simple Service Test

[Service]
Type=simple
RuntimeMaxSec=5
ExecStart=/bin/sleep 10

TimeoutStartSec 用于 Type=oneshot 服务:

[Unit]
Description=Terminate oneshot Service Test

[Service]
Type=oneshot
TimeoutStartSec=5
ExecStart=/bin/sleep 10

在睡眠定时器达到 10 秒前 5 秒后,两个服务都会终止。

有关 RuntimeMaxSecTimeoutStartSec 的详细信息可在此处找到: https://www.freedesktop.org/software/systemd/man/systemd.service.html