我使用CoreOS和SystemD计时器来运行我的报告......
我有一些监控报告,需要在接下来的12个小时内每3小时运行一次,在半小时内运行。如果我想在1230醒来停止报告,这很容易实现。
是否有"终止计时器" systemd计时器中的选项或类似内容>
答案 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 秒后,两个服务都会终止。
有关 RuntimeMaxSec
和 TimeoutStartSec
的详细信息可在此处找到:
https://www.freedesktop.org/software/systemd/man/systemd.service.html