暴发户在特定时间之间运行脚本



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

  • 开始时间:9点
  • 停车时间:23时30分

这是我的新贵:

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来指定发布某个东西的间隔时间,那就太好了。

这从未作为upstart的一部分实现。我建议将非常简单的工具snooze与upstart结合使用。这就是我运行cron的方式。void linux上的{hourly,daily,weekly,monthly}脚本。

对于您的特定情况,在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

最新更新