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

How to get the pid if i only know process name in linux using proc

我将编写程序使用 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 文件夹中是否有包含所有进程的文件 运行? 假设我只知道进程名称(例如 firefox),我想使用 proc 和 proc 文件系统

获取 pid

如果您不能使用像 pgrep 这样的工具,您可以查看所有 /proc/<pid> 目录并查看每个目录中的 exe link 以找到一个指向您想要的可执行文件的文件。或者,如果有帮助,您可以查看每个中的 cmdline