linux – 操作系统可以重启一个陷入无限循环的进程吗?
发布时间:2020-12-13 23:04:59 所属栏目:Linux 来源:网络整理
导读:前几天,在 Linux服务器上进行测试时,我们观察到在某些情况下,一个进程可能会死亡,然后再次启动.检查代码后,我们发现它是由无限循环引起的. 这引起了我的好奇心,这个过程是如何死亡然后开始的?操作系统是否检测并确定异常进程并重新启动?如果是,那怎么办?
前几天,在
Linux服务器上进行测试时,我们观察到在某些情况下,一个进程可能会死亡,然后再次启动.检查代码后,我们发现它是由无限循环引起的.
这引起了我的好奇心,这个过程是如何死亡然后开始的?操作系统是否检测并确定异常进程并重新启动?如果是,那怎么办? 解决方法
假设您将无法修复代码……让我们忽略所有疯狂的选项,例如通过脚本附加gdb等.
您可以检查CPU使用率(我已经完成的大多数偶然无限循环使用100%的CPU几小时:)),或者(更可能的选项)使用 例如: #!/bin/bash strace -p`cat your_app.pid` | ./your_signature_evaluator # Or strace -p12345 | ./your_signature_evaluator 至于自动系统识别……程序在循环调用东西后不可控制地崩溃(例如malloc(),直到你耗尽内存,打开文件……)似乎很正常,但我已经(并且如果我在评论中纠正我) “我错了”从未见过系统(内核)重启应用程序.我想你要么: >在程序内部有条件(信号处理,无论如何),有助于恢复 但我真的怀疑Linux对你自己的应用程序是如此的好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |