如何在bash中使用ls
查找正在运行的进程的PID?我们假设我知道过程的名称。使用ps
会很容易。如果我要搜索firefox,它只会是ps ax | grep firefox
。但是为了论证,让我说我不能这样做,我必须使用ls
。
任何帮助都会很棒!
答案 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