在特定时间之间的新贵运行脚本

时间:2018-11-15 14:00:27

标签: upstart

我想使用upstart在两个小时之间运行脚本:

  • 开始于:9h00
  • 停在:23h30

这是我的暴发户:

author "bakka"

start on runlevel [2345]
stop on runlevel [!2345]

respawn

script
    H_BEGIN="905"
    H_END="2330"
    H_NOW=$(date +%k%M)

    if [[ ${H_NOW} -gt ${H_BEGIN} && ${H_NOW} -lt ${H_END} ]]; then
        exec my_python_script
    fi
end script

但是,即使我删除了“在运行级别[2345]上启动”,它似乎也没有采取这种条件。

我已经在这里查看了:http://upstart.ubuntu.com/faq.html#replace-cron

  

您将只能在特定时间运行服务,   或特定日期等   引用

但这还不是很清楚。

如果有人知道如何通过upstart来指定启动某个事物的时间,那将是很好的。

1 个答案:

答案 0 :(得分:0)

这从来没有作为新贵的一部分来实现。我建议结合使用非常简单的工具snooze和新贵。这就是我运行cron的方式。{{每小时,每日,每周,每月}脚本在空白linux上运行。

对于您的特定情况,在9:00开始工作,在23:30停止工作,您将使用以下三个工作:

description "start my service if it is after 9:00 but before 23:30"
emits start-myservice

start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec snooze -H9 -s870 -- initctl emit start-myservice
description "stop my service if it is after 23:30 but before 9:00"
emits stop-myservice

start on runlevel [2345]
stop on runlevel [!2345]

respawn
exec snooze -H23 -M30 -s570 -- initctl emit stop-myservice
description "my service"

start on start-myservice
stop on stop-myservice

respawn
exec my_python_script