我可以仅使用 ls 找到正在运行的进程的 PID 吗?

Che*_*cle 0 linux bash pid ls

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

任何帮助都会很棒!

Jon*_*oni 5

/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
Run Code Online (Sandbox Code Playgroud)

  • @ThorX89 `/proc` 列出特定系统上的进程信息是一个教育点。但是 `ls` 在这里仍然完全不合时宜,并且不一定会找到所有进程名称(做一些类似阅读 `/proc/*/cmdline` 的事情会更好)。并且愿意打赌,如果 op 解释了他为什么需要而不是仅仅说“我需要 ls 来做这件事”,那么这个问题会得到更少的反对票。 (2认同)