我只能使用ls找到正在运行的进程的PID吗?

时间:2014-02-09 00:40:05

标签: linux bash pid ls

如何在bash中使用ls查找正在运行的进程的PID?我们假设我知道过程的名称。使用ps会很容易。如果我要搜索firefox,它只会是ps ax | grep firefox。但是为了论证,让我说我不能这样做,我必须使用ls

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:4)

/proc文件系统具有每个进程的目录条目。每个目录都包含一个文件,该文件是可执行文件的符号链接。例如,如果您可以使用grep过滤列表,则可以从路径中获取PID。例如:

$ ls -l /proc/*/exe | grep firefox
lrwxrwxrwx 1 joni     joni     0 Feb  9 01:39 /proc/8321/exe -> /usr/lib/firefox/firefox
lrwxrwxrwx 1 joni     joni     0 Feb  9 00:09 /proc/8825/exe -> /usr/lib/firefox/plugin-container

答案 1 :(得分:1)

您可以执行以下解决方案::)

ls -l /proc/*/exe | grep firefox | cut -d/ -f3