Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 堆芯转储的监控应用_C++_C_Linux_Coredump - Fatal编程技术网

C++ 堆芯转储的监控应用

C++ 堆芯转储的监控应用,c++,c,linux,coredump,C++,C,Linux,Coredump,我计划用C/C++设计一个应用程序,它以demon进程的形式运行,并在核心转储发生时收集它们以及应用程序日志文件。Linux中是否有任何方法可以让我知道应用程序已崩溃。首先,您可以更改核心转储文件写入的目录。在linux中,它是/proc/sys/kernel/core_模式(请参阅) 其次,您可以监视目录的更改,请参阅 只需将核心模式设置到一个特定的目录,并监视它是否有新文件。另一个选项(除了目前为止的其他好建议外)可能是设置/proc/sys/kernel/core\u模式,以便在创建核心文

我计划用C/C++设计一个应用程序,它以demon进程的形式运行,并在核心转储发生时收集它们以及应用程序日志文件。Linux中是否有任何方法可以让我知道应用程序已崩溃。

首先,您可以更改核心转储文件写入的目录。在linux中,它是
/proc/sys/kernel/core_模式
(请参阅)

其次,您可以监视目录的更改,请参阅


只需将核心模式设置到一个特定的目录,并监视它是否有新文件。

另一个选项(除了目前为止的其他好建议外)可能是设置/proc/sys/kernel/core\u模式,以便在创建核心文件时将其通过管道传输到应用程序,如下所述。例如,应用程序可以决定是否创建核心文件、在何处存储核心文件、动态压缩核心文件或通过IPC通知另一个应用程序已创建核心文件。

定期检查文件夹
/proc/
是否存在?不是最好的解决方案…如果您的进程启动了应用程序,您可以(
SIGCHLD
waitpid
,…)。如果您想知道给定进程是否存在,请使用带有0信号的
kill`系统调用。您的意思是守护进程,对吗?否则你的服务器就有问题了