核心转储的退出状态

use*_*199 5 shell-script core-dump

当进程转储核心时,它是否设置了任何特定的退出代码?或者,有没有办法检测核心是否被转储到 shell 脚本中。

我有一个 shell 脚本来触发一个偶尔会转储核心的工作。如果我的工作转储了核心,我想修改 shell 脚本,以便下一行可以检查状态并通知其他感兴趣的人该工作转储了核心。

我们保存核心转储并对其进行分析。这现在是通过简单的 find 命令完成的。如果我可以检查我的 shell 脚本中的一行是否导致核心转储,我就可以更快地诊断问题。

在 Ubuntu 12.04 上。

vin*_*c17 5

实际中,进程被某个信号终止时会自动产生core dump,退出码由信号(128 + signal_value)决定,在Linux下,信号至少可以是: SIGQUIT (3) , SIGILL (4), SIGABRT (6), SIGFPE (8), SIGSEGV (11)。有关更完整的列表,请参阅 signal(7) 手册页。不会总是产生核心转储;请参阅 core(5) 手册页中的某些情况。

注意:在对wait系统调用具有完全访问权限的语言中(但这不是 POSIX shell 脚本的情况),您可以使用WCOREDUMP(在 Linux 下可用),如果子进程产生核心转储,则返回 true。有关更多信息,请参阅 wait(2) 手册页。