如何更改类 Unix 操作系统中核心转储的命名?

如何更改类 Unix 操作系统中核心转储的命名?

我想更改单独进程及其子进程的核心转储命名,或者,如果不可能的话,更改单独用户的所有进程的核心转储命名。

注意:我知道可以更改所有用户覆盖/proc/sys/kernel/core_pattern文件的命名。

答案1

如您所知,/proc/sys/kernel/core_pattern它是系统全局的,并且是 Linux 特定的(不可移植)。

我认为没有可以基于每个进程或每个 uid 自定义核心转储文件名的工具,但您可以通过将核心转储发送到处理程序而不是直接发送到文件来实现您想要的效果。通过执行如下操作:

echo "|usr/local/bin/my_core_dump_handler" >/proc/sys/kernel/core_pattern

my_core_dump_handler每次发生核心转储时都会执行。它可以从其标准输入读取实际的核心转储并将其写入其选择的自定义文件名。

顺便提一句:您的问题谈到了/proc/sys/kernel/core_name_format。我假设您的意思是/proc/sys/kernel/core_pattern因为前者对我来说不存在。

相关内容