如何在不禁用应用程序的情况下编辑核心转储模式?

coy*_*508 8 configuration kernel apport

目前我已经通过编辑/etc/limits.conf和 addig* soft core unlimited以及使用ulimit -c unlimited.

但 core_pattern 是这样的:

kernel.core_pattern = |/usr/share/apport/apport %p %s %c %P
Run Code Online (Sandbox Code Playgroud)

所以核心被传送到apport。我不介意,而且我不想弄乱 apport(我记得这样做时出了点问题),而且 apportcore崩溃时会在我的二进制文件的目录中很好地生成一个文件。

有什么方法可以编辑 apport 保存核心的位置或其文件名(而不是简单的core)?类似于我可以通过禁用 apport 和编辑core_pattern,但不禁用 apport.

小智 2

我找到了一种更好的方法来做到这一点,因为对 apport 进行更改意味着每次升级 apport 时,我们都必须添加更改。

Linux 允许您提供 shell 脚本作为每次生成核心时执行的程序。在此核心文件中,您可以像往常一样调用 apport,然后执行您的自定义操作。这包括更改核心文件的名称和位置。

要查找apport生成的core的路径,可以使用以下命令

core_dir=realpath '/proc/$1/cwd'
Run Code Online (Sandbox Code Playgroud)