为什么有这么多进程在运行?

Man*_*rer 6 linux ubuntu java process

我使用 Ubuntu 8.04、Nginx、Passenger、Mysql、RVM 在 VPS 上托管了几个 Rails 应用程序,所以所有常见的嫌疑人。

在过去的日子里,这是我第一次真正必须调试问题并查看正在运行的进程。我可以使用passenger-status 和passenger-memory-stats 来解决这个问题,但是我对正在运行的进程数量感到很困惑,无法弄清楚。

看看这个截图,例如:http : //screencast.com/t/wUMrmy5iQPQi(取自 htop)

它显示了许多 Hudson 进程(Hudson 是我在那台机器上运行的 CI 服务器)。

我的问题是:

  • 为什么有 34 个?
  • 它们都是独立的进程吗?
  • 是否应该有 34 个或其中一些过时的孤立​​进程在重新启动时没有正确关闭,我应该杀死哪些进程?

bas*_*ero 12

你看到的是线程。在 htop 中,按 F2 选择选项,然后选择“显示选项”。选中“隐藏用户线程”框和/或尝试 htop 中的一些选项,例如“以不同颜色显示线程”

您可能还想打开 PPID(父进程 ID)列。然后您就可以知道所有线程可能都列出了相同的父进程。

  • @MarkR 虽然“ps”可能不显示线程,但 OP 使用的工具“htop”默认显示线程。这就是为什么我的答案直接写入相关工具的原因。 (2认同)