【问题标题】:process identification过程识别
【发布时间】:2010-04-07 12:12:29
【问题描述】:

假设我有 15 个进程/守护进程在后台运行。 假设其中一个进程已转储核心。

我如何确定是哪个进程转储了核心。

我正在使用 hpux!

【问题讨论】:

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


    【解决方案1】:

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

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

    更新: 3) 刚刚读到这个:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

         /var/adm/crash
        

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

          man coreadm
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-11-20
          • 1970-01-01
          • 1970-01-01
          • 2013-09-05
          • 2013-07-06
          • 2016-03-14
          • 1970-01-01
          相关资源
          最近更新 更多