我计划在C/C++中设计一个应用程序,该应用程序作为demon进程运行,并在核心转储与应用程序日志文件一起发生时收集它们。在Linux中,有什么方法可以让我知道应用程序已经崩溃了吗。
首先,您可以更改核心转储文件写入的目录。在linux中,它是/proc/sys/kernel/core_pattern
(参见本博客)
第二,您可以监视目录的更改,请参阅Inotify-如何使用它?-linux。
只需将核心模式设置到一个特定的目录,并监视它是否有新文件。
另一个选项(除了迄今为止的其他好建议之外)可能是设置/proc/sys/kernel/core_pattern,以便在创建核心文件时将其管道传输到应用程序,如本文所述。例如,应用程序可以决定是否创建核心文件,将核心文件存储在哪里,动态压缩核心文件,或者通过IPC通知另一个应用程序核心文件已经创建。