2014-01-09 89 views
0

我相信我將要問的是不可能的。仍然試圖找出是否有一種方法或方法,我不會意識到。來自pid的Unix進程名稱

我得到了一個壞的管道錯誤,我有目標進程的PID但沒有名稱。有什麼辦法,我可以使用pid找出進程名稱(可能已經終止)。

+2

您可以找到仍然存在的進程的名稱。但是如果它已經終止,並且它的父節點調用了'wait()'來獲取它,它就不再存在,並且你不能找到它的名字。 – Barmar

回答

1

正如Barmar在他的評論中所說的,這是不可能的。系統在終止時會立即忘記所有有關進程的信息。

但是,當然您的流程可能能夠符合以幫助您瞭解更多信息。如果您可以修改相關流程,則可以讓他們將PID記錄到一個特殊位置,以便以後查找哪個PID屬於哪個進程。

雖然這不適用於您無法修改的程序。在這些情況下,仍然有可能在它們周圍放置一個包裝,它首先記錄PID,然後將其記錄到想要的程序中。

#!/bin/bash 
echo "$$: $*" >> /home/alfe/var/pid.log 
exec "[email protected]" 

如果你既沒有啓動程序,也沒有可以修改的程序,你就沒有我擔心的選項。