暴发户杀死超时不受尊重?

Bin*_*rus 5 upstart timeout

我目前正在通过玩耍来学习新贵。我想我现在已经理解了这个原则,但是我在新贵工作中遇到了“终止超时”节的困难。

例如,我有以下作业(文件名 /etc/init/test.conf):

description "test"
start on test
console owner
kill timeout 5
task
exec /root/test
Run Code Online (Sandbox Code Playgroud)

文件 /root/test 是一个永远运行的小 shell 脚本:

while true; do o=1; done;
Run Code Online (Sandbox Code Playgroud)

执行“initctl start test”时,会运行作业“test”并调用脚本“/root/test”。我可以通过执行“initctl status test”来验证这一点,该测试显示作业正在运行以及执行“ps -Alf”。

现在,“kill timeout 5”节应该会导致作业在 5 秒后被杀死。但相反,这项工作似乎永远运行。

我想知道我是否以正确的方式使用和理解 kill timeout 节。这对我来说是必不可少的功能。

这是在 Natty 11.04 上,但我认为这个问题也适用于其他版本。

非常感谢,

比纳鲁斯

gee*_*aur 4

事实并非如此kill timeout;它指定在发送礼貌的“终止”信号后等待多长时间退出进程,然后再放弃并发射核武器。

如果您想以这种方式设置进程时间限制upstart,最简单的方法可能是让某些东西定期发出事件timer,并使用stop on timer. 或者(也许更一般地),创建一个包装程序,该程序分叉一个小进程,该进程在一段时间后发送一个事件,然后发送stop on该事件。

有关更多信息和最佳实践,请参阅The Upstart Cookbook