【问题标题】:core kernel pattern %e on Linux appends PIDLinux 上的核心内核模式 %e 附加 PID
【发布时间】:2022-01-02 02:14:31
【问题描述】:

根据core 的文档,内核模式中的 %e 代表“进程或线程的通信值”。此外,无论 /proc/[pid]/comm 返回什么,核心 comm 值都是 defined。然而,在我的机器(CentOs)上,尽管内核模式被定义为 core-%e 并且 comm 值仅返回进程名称,PID 仍然附加到核心名称。为什么文档和实际行为之间存在这种差异?

[root@mde-segment-bouretskey dump]# cat /proc/sys/kernel/core_pattern
/tmp/dump/core-%e
[root@mde-segment-bouretskey dump]# ls /tmp/dump/core-*
/tmp/dump/core-a.out.42098  /tmp/dump/core-a.out.43097
[root@mde-segment-bouretskey dump]#

[root@mde-segment-bouretskey crashtest]# cat /proc/45301/comm
a.out

【问题讨论】:

    标签: linux debugging linux-kernel coredump


    【解决方案1】:

    您需要设置kernel.core_uses_pid=0 以避免在缺少%p 时附加pid。

    从核心(5):

    为了向后兼容,如果 /proc/sys/kernel/core_pattern 不包含 %p 并且 /proc/sys/kernel/core_uses_pid(见下文)非零,则 .PID 将附加到核心文件名。

    【讨论】:

    • 是的,就是这样
    猜你喜欢
    • 1970-01-01
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多