it-swarm.cn

如何查看正在运行的进程?

我使用Ubuntu Server 10.10,我想看看正在运行什么进程。我知道PostgreSQL正在我的机器上运行,但是用topps命令看不到它,因此我假设它们没有显示所有正在运行的进程。是否有另一个命令将显示所有正在运行的进程,或者是否可以为此使用topps的任何其他参数?

22
Jonas

ps手册页中:

-e选择所有进程。与-A相同。

因此,ps -e将显示所有过程。 “给我一切”的常见选项是ps -ely 要么 ps aux,后者是BSD样式。通常,人们会将此输出通过管道传递到grep来搜索进程,如xenoterracide的回答。为了避免在输出中也看到grep本身,您通常会看到以下内容:

 ps -ef | grep [f]oo

foo是您要查找的进程名称。

但是,如果您正在寻找特定的进程,我建议使用pgrep命令(如果可用)。我相信它可以在Ubuntu Server上使用。使用pgrep意味着可以避免上述竞争条件。它还提供了一些其他功能,这些功能将需要越来越复杂的grep技巧来复制。语法很简单:

pgrep foo

foo是您正在寻找的过程。默认情况下,如果找到进程,它将仅输出进程的进程ID(PID)。见man pgrep用于其他输出选项。我发现以下页面非常有帮助:

http://mywiki.wooledge.org/ProcessManagement

26
Steven D

你有没有尝试过 ps aux | grep postgres?如果postgres正在运行,它确实应该显示出来。如果没有,您怎么知道postgres正在运行?

(请注意:这是一个常见的误解,是ps -aux但这是不正确的)

3
xenoterracide