Linux / Bash,使用ps -o获取特定名称的进程?
我正在尝试使用ps -o命令来获取有关与特定名称匹配的进程的具体信息。 然而,我在这方面有一些问题,当我尝试使用它甚至只是得到所有进程,就像这样,它只是返回一个普通的ps -ef
将返回的子集(它不会返回几乎相同的数字的结果,所以它不返回所有正在运行的进程)
ps -ef -o pid,time,comm
我想尝试像这样(下面),但纳入ps -o只是从它得到的具体信息(只是PID)
ps -ef |grep `whoami`| grep firefox-bin
任何意见,赞赏如何做到这一点,谢谢
这将通过名称获得进程的PID:
pidof name
然后,您可以将其重新插入ps以获取更多详细信息:
ps -p $(pidof name)
这是有点旧,但我想你想要的是:ps -o pid -C PROCESS_NAME,例如:
ps -o pid -C bash
编辑:依靠你期望的输出types, pgrep
会更优雅。 据我所知,这是Linux专用的,并产生与上述类似的输出。 例如:
pgrep bash
ps -fC PROCESSNAME
ps和grep是一个危险的组合 – grep试图匹配每一行上的所有内容(因此这些都很常见:grep -v grep hack)。 ps -C不使用grep,它使用进程表进行完全匹配。 因此,您将得到一个准确的列表:ps -fC sh而不是查找每个进程sh的某处。
有时候你需要用名字grep进程 – 在这种情况下:
ps aux | grep simple-scan
示例输出:
simple-scan 1090 0.0 0.1 4248 1432 ? S Jun11 0:00