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

upstart run script between particular time

我想 运行 使用 upstart 在两个小时内编写一个脚本:

这是我的新贵:

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

但它似乎不符合条件,即使我删除了 "start on runlevel [2345]"

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

You'd be able to have a service only running between particular times, or on particular days, etc. Blockquote

但是没说的很清楚

如果有人知道如何使用 upstart 指定启动某项的间隔时间,那就太好了。

这从未作为 upstart 的一部分实施。我建议将非常简单的工具 snooze 与 upstart 结合使用。这就是我 运行 我的 cron.{hourly,daily,weekly,monthly} void 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