但是,当我执行一个大型操作时,几个小时后,守护进程将在2到3个小时内没有响应。
调试Linux进程挂起问题的实用工具?
如何获取linux进程挂起的时间点?
发布于 2010-06-14 13:53:32
这些信息中的每一个都可能给出一点信息,这些信息共同构成了问题的图景。
在使用gdb时,在应用程序被阻塞时触发核心转储可能很有用。然后您就有了一个静态快照,您可以在空闲时使用事后调试对其进行分析。你可以通过一个脚本来触发它们。你可以快速建立一组快照,用来检验你的理论。
发布于 2010-06-14 13:39:03
一种选择是使用gdb和attach命令,以便附加到正在运行的进程。您需要加载一个包含有问题的可执行文件符号的文件(使用file命令)
发布于 2013-11-09 17:09:05
有许多不同的方法可以做到:
监听UNIX域套接字的
alarm系统调用,让信号终止进程(相应地使用sigaction )。只要你继续调用alarm (即只要你的程序在运行),它就会一直运行。一旦你不这样做,信号就会发出。您可以在fork和waitpid终止时无缝地重新启动您的进程,如in this answer所述。它不会消耗任何重要的资源,因为操作系统将共享内存页。
https://stackoverflow.com/questions/3035134
复制相似问题