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

Jon*_*nas 25 process monitoring process-management

我使用 Ubuntu Server 10.10,我想看看正在运行哪些进程。我知道 PostgreSQL 正在我的机器上运行,但我无法使用toporps命令看到它,所以我假设它们没有显示所有正在运行的进程。难道还有其他的命令,它会显示所有正在运行的进程或有任何其他参数,我可以使用topps用于本?

Ste*_*n D 29

ps手册页:

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

这样,ps -e就会显示所有的进程。“给我一切”的常见选项是ps -elyor ps aux,后者是 BSD 风格的。通常,人们然后将此输出通过管道传输grep到搜索过程,如异种杀虫剂的答案。为了避免grep在输出中也看到自己,您经常会看到类似的内容:

 ps -ef | grep [f]oo
Run Code Online (Sandbox Code Playgroud)

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

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

pgrep foo
Run Code Online (Sandbox Code Playgroud)

其中 foo 是您要查找的进程。默认情况下,它会简单地输出进程的进程 ID (PID),如果它找到了。有关man pgrep其他输出选项,请参阅。我发现以下页面非常有帮助:

http://mywiki.wooledge.org/ProcessManagement