【问题标题】:Unix process name from pid来自 pid 的 Unix 进程名称
【发布时间】:2014-01-09 11:17:53
【问题描述】:

我相信我要问的问题是不可能的。仍在尝试寻找是否有我不知道的方法或方法。

我有一个损坏的管道错误,我有目标进程的 pid 但没有名称。有什么办法,我可以使用pid找出进程名称(可能已经终止)。

【问题讨论】:

  • 您可以找到仍然存在的进程的名称。但如果它已经终止并且它的父节点已经调用wait() 来收割它,它就不再存在,你也找不到它的名字。

标签: unix process pipe


【解决方案1】:

正如 Barmar 在他的评论中所说,这通常是不可能的。一旦进程终止,系统就会忘记有关进程的所有信息。

当然,您的流程可能会合规,以帮助您了解更多信息。如果您可以修改有问题的进程,您可以让他们将其 PID 记录到一个特殊的位置,您可以稍后在其中查找哪个 PID 曾经属于哪个进程。

不过,这不适用于您无法修改的程序。在这些情况下,仍然可以在它们周围放置一个包装器,它首先记录 PID,然后将execs 记录到想要的程序。

#!/bin/bash
echo "$$: $*" >> /home/alfe/var/pid.log
exec "$@"

如果你既没有启动有问题的程序也不能修改它,我担心你没有选择。

【讨论】:

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