“重生太快,停止了”。如何使UPSTART禁用5分钟?


11

在过去,init守护程序用于禁用重新生成速度太快的任务。

我发现危险在于UPSTART只会阻止它们。永远。

我已经找到了COUNT和INTERVAL控件,用于确定何时停止快速重生的作业,但是我找不到在指定的等待时间后如何重新启动该作业的方法。

  • 这用于必须通过ssh连接的远程服务器,以便我可以隧穿回该服务器。但是它经常有连接问题,运行ssh连接的工作快要死了!我愚蠢地期望新贵保持工作的顺利进行。

有没有办法,还是我需要执行诸如运行cron作业之类的操作来检查它是否正在运行以及是否不重新启动它?

Answers:


10

Upstart允许停止后的睡眠,以延迟作业的重新启动。来自http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

现在,当作业失败时,它将等待5秒钟,然后再次尝试连接。结合将重生设置为在30秒内进行10次,它应该尝试永久重生(它只会在30秒内尝试7次,因此不应被踢出重生)


是的,我认为这是一个不错的解决方法。我不知道,新贵应该在重新运行作业之前指定等待时间的可能性。我真的不喜欢只是停止工作而已的想法。我非常喜欢init禁用工作五分钟的方法。
基思

我认为您正在谈论的用例很少。如果作业失败,则有原因,因此应予以解决。大多数人不希望这项工作继续尝试开始并失败,因为这可能会清除包含有价值信息的日志或产生其他灾难性后果。我认为您将upstart用于并非旨在用于某些目的的东西,因此重新启动它的标准方法可能就不可行了。也就是说,连接断开后,该计算机上的网络连接是否会尝试重新连接?如果是这样,您也许可以在网络启动时开始工作。
tgm4883 2011年

1
我敢肯定,这与“多数人”案相去甚远。在过去的20年中,我一直在研究Slackware和定制系统,因此,其中许多概念对我来说都是陌生的。您能为我指出自定义Ubuntu网络启动/重新启动的正确方向吗?天哪,这让我感到老了,与世隔绝。我可以在10秒钟内在slackware上完成它。
基思

1
食谱中对此进行了介绍;他们建议使用停止后的节:upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx

1
谢谢@jcomeau_ictx,就是这样,我认为答案应该使用指向它的链接upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job进行更新。此外,还有针对Keith请求bugs.launchpad.net/upstart/+bug/252997的接受票证和补丁,其中包含重试等待时间,然后重试。
Andre Miras 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.