我想更改单独进程及其子进程的核心转储命名,或者,如果不可能的话,更改单独用户的所有进程的核心转储命名。
注意:我知道可以更改所有用户覆盖/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
因为前者对我来说不存在。