C++ 堆芯转储的监控应用
我计划用C/C++设计一个应用程序,它以demon进程的形式运行,并在核心转储发生时收集它们以及应用程序日志文件。Linux中是否有任何方法可以让我知道应用程序已崩溃。首先,您可以更改核心转储文件写入的目录。在linux中,它是C++ 堆芯转储的监控应用,c++,c,linux,coredump,C++,C,Linux,Coredump,我计划用C/C++设计一个应用程序,它以demon进程的形式运行,并在核心转储发生时收集它们以及应用程序日志文件。Linux中是否有任何方法可以让我知道应用程序已崩溃。首先,您可以更改核心转储文件写入的目录。在linux中,它是/proc/sys/kernel/core_模式(请参阅) 其次,您可以监视目录的更改,请参阅 只需将核心模式设置到一个特定的目录,并监视它是否有新文件。另一个选项(除了目前为止的其他好建议外)可能是设置/proc/sys/kernel/core\u模式,以便在创建核心文
/proc/sys/kernel/core_模式
(请参阅)
其次,您可以监视目录的更改,请参阅
只需将核心模式设置到一个特定的目录,并监视它是否有新文件。另一个选项(除了目前为止的其他好建议外)可能是设置/proc/sys/kernel/core\u模式,以便在创建核心文件时将其通过管道传输到应用程序,如下所述。例如,应用程序可以决定是否创建核心文件、在何处存储核心文件、动态压缩核心文件或通过IPC通知另一个应用程序已创建核心文件。定期检查文件夹
/proc/
是否存在?不是最好的解决方案…如果您的进程启动了应用程序,您可以(SIGCHLD
waitpid,…)。如果您想知道给定进程是否存在,请使用带有0信号的
kill`系统调用。您的意思是守护进程,对吗?否则你的服务器就有问题了