如果我只使用proc知道linux中的进程名称,如何获取pid

时间:2015-06-05 13:07:31

标签: c linux filesystems procfs

我将使用procfs制作程序以获取进程信息(pid,进程名称,虚拟内存,物理内存)。 我想要像这样打印

PID Name Virtual physical shared
1    init 1234    123       22
33   firefox 33    33       2 

我想我可以通过proc / [pid] / stat获取流程信息 如果我想获得流程信息,我想我应该知道pid。 但问题是如何只在给定进程名称的情况下才能获得pid。

因为重启后或终止并重新启动后更改了进程pid。

所以我的问题是 如果我只知道进程名称,有没有办法获得pid?不使用shell脚本

proc文件夹中是否包含所有正在运行的进程? 假设我只知道进程名称(ex)firefox),我想使用proc和proc文件系统获取pid

1 个答案:

答案 0 :(得分:1)

如果您无法使用pgrep之类的工具,则可以查看所有/proc/<pid>目录,并查看每个目录中的exe链接,找到指向的cmdline链接你想要的可执行文件。或者,如果有帮助的话,你可以在每个中查看data