gpt4 book ai didi

systemd 计时器每天在 2 个不同的时间启动 .sh 脚本

转载 作者:行者123 更新时间:2023-12-05 04:08:56 26 4
gpt4 key购买 nike

我有一个 bourne shell 脚本(在我的 NAS 上)处理我所有 ipcamsffmpeg 记录。为了切换某些摄像头的记录时间(等),sh 脚本应该每天在 2 个不同的时间(07:00am10:00pm)重新启动,这是配置的在 bash 脚本中运行良好。

  1. 要启动 sh 脚本,我使用 systemd 和以下 .service 文件:

    [单位]
    描述=记录网络摄像头
    After=tmp.mount network.target
    要求=网络.目标
    RequiresMountsFor=/media/USB2

    [服务]
    类型= fork
    PIDFile=/var/run/cams_record.pid
    ExecStart=/bin/bash -c '/media/USB2/movie/cams/cams_record.sh'
    TimeoutStopSec=1
    重启=总是

    [安装]
    WantedBy=multi-user.target

到目前为止一切顺利。现在我真正想要的是每天在 07:00am10:00pm 重新启动该脚本文件(或在这两个时间重新启动前面提到的 .service),因此我考虑使用 systemd 计时器。我为 07:00 am 创建了这样一个计时器(带有选项:OnCalender=07:00)

问题是:有一个(永久运行的)服务,我如何在 07:00am22:00pm 重新启动该服务(以及脚本文件)。我当然可以使用 2 个 systemd 计时器(1 个用于 07:00am,1 个用于 10:00pm),但是是否有可能将它们结合起来;即两次都使用 1 个 systemd 计时器。

最佳答案

使用模板定时器,你可以做这样的事情

cat test@.timer 
[Unit]
Description=test

[Timer]
OnCalendar=%i:00
Unit=test.service

[Install]
WantedBy=timers.target

然后:

systemctl daemon-reload

systemctl start test@07.service
systemctl start test@22.service

来源:https://fedoramagazine.org/systemd-template-unit-files/https://jason.the-graham.com/2013/03/06/how-to-use-systemd-timers/

关于systemd 计时器每天在 2 个不同的时间启动 .sh 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47010254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com