如何检测进程当前是否正在转储核心?

时间:2013-09-20 14:03:28

标签: linux

我正在编写一个支持捕获脚本,该脚本捆绑了与我的一些进程相关的系统上的所有核心和日志。如果其中一个进程处于转储核心的过程中,它将导致我的支持捕获捆绑一个半写核心。

为了帮助防止用户错误,我希望能够检测进程是否正在转储核心。我提出的最好的是两个黑客:

(a)在我的核心目录中查询核心的大小30秒,看看是否有任何核心正在改变大小。如果是的话,核心就会被抛弃。

(b)组合pgrep和ps -l,查看进程是否具有WCHAN状态pipe_w

是否有更优雅,更全面的证明方式?

是否有可以查询的内容会告诉我们某些东西正在倾销核心?

1 个答案:

答案 0 :(得分:0)

lsof命令将列出当前打开的文件以及具有句柄的进程。您还可以指示它仅列出单个文件。所以在你的情况下,你可以使用:

lsof "[absolute path to core file]"

(如果文件路径包含空格,则双引号很重要。)

如果文件已打开,则lsof将以零退出。

相关问题