过程识别

时间:2010-04-07 12:12:29

标签: c gdb hp-ux dbx core-file

假设我有15个进程/守护进程在后台运行。 让我们说其中一个过程已经抛弃了核心。

我怎样才能确定哪个进程已经转储核心。

我正在使用hpux!

3 个答案:

答案 0 :(得分:0)

它可以将pid写为文件名的一部分。我不知道你开始15个进程是什么或如何,但是存储pid是很常见的。守护进程通常使用标识实例的东西创建自己的pid文件。

答案 1 :(得分:0)

它应该在转储期间生成的索引文件中。 HPUX 10.26(真的很旧)将转储保存在:

 /var/adm/crash

您将需要使用q4或类似的工具来调查转储。要将模式设置为epronk建议,您需要 coreadm 。请参阅手册页:

  man coreadm

答案 2 :(得分:0)

1)如果进程具有相同的名称,那么我认为您必须从不同的文件夹运行它们。如果进程转储核心,您将在其文件夹中获取它。 我不知道你是怎么开始的。如果使用&启动进程,则可以使用$!获取上次启动的守护程序进程的PID,从而将进程的PID保存在其文件夹中。 或者,您可以查看此文件夹中的守护程序日志,并从该处获取此文件夹中的进程的PID。

2)如果你运行不同的应用程序,可以使用file ./core找出应用程序的名称。

<强>更新 3)刚读过这个:

先运行coreadm -p core.%p.%f.%t.%n或将此命令放入个人资料中。 然后,如果应用程序coredumps,您将看到名为core.<PID>.<Application-Name>.<Timestamp>.<Server>的核心文件。例如:core.29305.main.1278939422:531259.srv2-rx8