新兴职位和“与”条件

新兴职位和“与”条件

我尝试在其他两个作业完成后启动一个 upstart 作业。例如,我的 debug.conf 如下所示:

在网络停止和屏幕清理停止时启动
任务
脚本
    日期
结束脚本

我在脚本末尾添加了一个日期调用screen-cleanup.conf,在网络停止后脚本的开头也添加了一个日期调用。时间戳应该可以让我大致了解事情的运行顺序。

我已经重启了好几次,但行为似乎有所不同。最初我发现上述“调试”作业会在“联网”之后但在“屏幕清理”完成之前运行(基于日期输出)。从那时起,我尝试了各种测试,发现类似的条件,但依赖于我发送的信号initctl emit(以避免我重新启动)而不是“停止”,工作正常。

为了进一步探索启动时的行为,我创建并删除了各种测试作业,现在我发现“调试”作业根本没有运行。我将 conf 文件复制到另一个名称,并将“and”更改为“or”,并验证该作业在启动时确实触发了两次。

我已经看过食谱但我看不出我做错了什么。屏幕清理也是一项任务,如果这有区别的话(除了我迄今为止的额外调用之外,它是屏幕包附带的文件)。

我正在运行 13.10,但我希望最坏的情况能恢复到 12.04 LTS。

编辑:经过多次重启后,我又回到了在第一个要停止的事情(网络)上触发作业,而不是在最后一个要停止的事情(屏幕清理)上触发作业。我只能假设有一个我没有注意到的额外因素。

答案1

Ubuntu 12 和 13 之间的行为stopped networking发生了变化,因为网络作业不再是一项任务。这导致条件stopped networking在系统关闭时有效触发。

作业似乎提前终止的时间大概是它在重新启动之前实际终止的时间。

有一个错误报告关于食谱建议“停止联网”更不用说它在版本之间改变了行为。我已经转到static-network-up似乎在ifup -a运行后触发的版本,所以可能大致相同。然而,食谱表明这在 Ubuntu 11 之前的版本上不起作用。

相关内容