如图所示,我们部署了一个启用了 apport 的 Ubuntu 服务器。
~$ cat /proc/sys/kernel/core_pattern
|/usr/share/apport/apport %p %s %c
不幸的是,apport 在处理非打包应用程序崩溃时的行为并不完全符合我们的喜好。在这些场景中,apport 正在工作目录中生成“核心”文件(假设 ulimit -c 已正确设置)。例如,从 apport 日志中,
ERROR: apport (pid 10117) Tue Jan 8 08:56:25 2013: executable: /home/jess/a.out (command line "./a.out")
ERROR: apport (pid 10117) Tue Jan 8 08:56:25 2013: executable does not belong to a package, ignoring
ERROR: apport (pid 10117) Tue Jan 8 08:56:25 2013: writing core dump to /home/jess/core (limit: 18889465931478580853760)
令人沮丧的是,一旦有核心文件,它就不会被覆盖。因此,例如,如果我们正在测试一个应用程序并且忘记从工作目录中清除旧的核心文件,那么应用程序在测试期间崩溃,我们将看不到新的核心文件。即使它被覆盖,这也可能不是理想的,因为我们会失去旧的核心。
理想情况下,我们希望能够通过参数告诉 apport,例如,对于未打包的应用程序案例,生成一个具有根据指定模式格式化的文件名的核心文件(根据 core_pattern 文件规范)。 ..有什么办法可以做到这一点,或类似的东西吗?