首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缩短进程崩溃和射杀服务器之间的时间?

缩短进程崩溃和射杀服务器之间的时间?
EN

Stack Overflow用户
提问于 2015-07-13 06:50:49
回答 1查看 32关注 0票数 1

我有一个例程,它会使linux崩溃,并使用系统函数强制重启。

现在,我遇到了这样一个问题:当某个进程终止时,我需要使linux崩溃。使用脚本启动进程并在脚本结束时重新启动服务器是不合适的,因为这需要一些毫秒时间。

另一个想法是同时产生拍摄过程,并使用计数器的轮询,如果计数器没有递增,重新启动服务器将是另一个想法。

这将导致几乎即时的反应。

现在的问题是什么是一个好的时间框架。我不知道linux的调度程序如何保证任何这样的计数器的某个更新,以及一个好的超时时间。

此外,我还希望听到一些替代第二个进程产生的方案。有没有可能建议linux在给定进程崩溃的情况下运行特定的例程,或者在给定进程出现问题的情况下建议侦听器执行机制?

EN

回答 1

Stack Overflow用户

发布于 2015-07-13 08:14:08

超时的概念已经在内核中实现了。您可以将任何应用程序注册为软件监视器,但您必须降低默认超时。在http://linux.die.net/man/8/watchdog上可以找到一些想法。该应用程序还可以处理用户定义的测试。实际上,除非您正在尝试运行像linux-rt这样的内核,否则在负载较重的系统上,超时时间低于100ms可能是危险的--特别是当检查需要轮询另一个应用程序时。

在应用程序崩溃的情况下,如果您的init支持通知,您可以处理它们。例如,通过监控文件进行both upstart and systemd can do that (确保在正确的位置创建核心转储)。

但无论如何,我建议重新考虑毫秒级分辨率重启的想法。你真的需要在那段时间内杀死系统,还是只需要隔离它?仅仅同步磁盘就需要几毫秒的额外时间,您可能不想错过这一步。您可以确保受影响的应用程序不工作,而不是简单地杀死主机(SIGABRT?)并终止所有网络(刷新iptables,将默认值更改为DROP)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31373356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档