linux – 操作系统可以重启一个陷入无限循环的进程吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 操作系统可以重启一个陷入无限循环的进程吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1052字,纯文字阅读大概需要2分钟。
内容图文
前几天,在Linux服务器上进行测试时,我们观察到在某些情况下,一个进程可能会死亡,然后再次启动.检查代码后,我们发现它是由无限循环引起的.
这引起了我的好奇心,这个过程是如何死亡然后开始的?操作系统是否检测并确定异常进程并重新启动?如果是,那怎么办?
解决方法:
假设您将无法修复代码……让我们忽略所有疯狂的选项,例如通过脚本附加gdb等.
您可以检查CPU使用率(我已经完成的大多数偶然无限循环使用100%的CPU几小时:)),或者(更可能的选项)使用strace来检查软件现在正在做什么并实现自己的签名跟踪(如果这20个API重复20次让我们假设无限循环左右).
例如:
#!/bin/bash
strace -p`cat your_app.pid` | ./your_signature_evaluator
# Or
strace -p12345 | ./your_signature_evaluator
至于自动系统识别……程序在循环调用东西后不可控制地崩溃(例如malloc(),直到你耗尽内存,打开文件……)似乎很正常,但我已经(并且如果我在评论中纠正我) “我错了”从未见过系统(内核)重启应用程序.我想你要么:
>在程序内部有条件(信号处理,无论如何),有助于恢复
>你正在运行一个看门狗(检查< pid>正在运行,如果没有启动新实例,则每20秒检查一次)
>如果已停止,您正在运行提供服务/程序配置并重启的分发
但我真的怀疑Linux对你自己的应用程序是如此的好.
内容总结
以上是互联网集市为您收集整理的linux – 操作系统可以重启一个陷入无限循环的进程吗?全部内容,希望文章能够帮你解决linux – 操作系统可以重启一个陷入无限循环的进程吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。