我尝试在其他两个作业完成后启动一个 upstart 作业。例如,我的 debug.conf 如下所示:
在网络停止和屏幕清理停止时启动 任务 脚本 日期 结束脚本
我在脚本末尾添加了一个日期调用screen-cleanup.conf
,在网络停止后脚本的开头也添加了一个日期调用。时间戳应该可以让我大致了解事情的运行顺序。
我已经重启了好几次,但行为似乎有所不同。最初我发现上述“调试”作业会在“联网”之后但在“屏幕清理”完成之前运行(基于日期输出)。从那时起,我尝试了各种测试,发现类似的条件,但依赖于我发送的信号initctl emit
(以避免我重新启动)而不是“停止”,工作正常。
为了进一步探索启动时的行为,我创建并删除了各种测试作业,现在我发现“调试”作业根本没有运行。我将 conf 文件复制到另一个名称,并将“and”更改为“or”,并验证该作业在启动时确实触发了两次。
我已经看过食谱但我看不出我做错了什么。屏幕清理也是一项任务,如果这有区别的话(除了我迄今为止的额外调用之外,它是屏幕包附带的文件)。
我正在运行 13.10,但我希望最坏的情况能恢复到 12.04 LTS。
编辑:经过多次重启后,我又回到了在第一个要停止的事情(网络)上触发作业,而不是在最后一个要停止的事情(屏幕清理)上触发作业。我只能假设有一个我没有注意到的额外因素。