为什么“htop”会显示我的应用程序正在使用的数十个PID,但“ps”只显示了一个?

时间:2014-07-27 22:17:10

标签: clojure ps htop

我正在开发一个Clojure应用程序。我正在服务器上测试它,主要是进入一个"屏幕"会话和打字:

java -jar lo_login_service-0.2-standalone.jar

然后我通过点击Control-C来杀死它。然后我做了一些改变。然后我再次测试它。

我假设只有1个PID正在使用中。如果我这样做:

ps aux

我只看到1个正在使用的PID:

das      15028  0.2 22.1 1185300 133520 pts/5  Sl+  Jul26   3:19 java -jar lo_login_service-0.2-standalone.jar

但如果我跑了" htop",那么我看到了:

15029 das        20   0 1157M  130M  9960 S  0.0 22.2  0:25.85 java -jar lo_login_service-0.2-standalone.jar

15030 das        20   0 1157M  130M  9960 S  0.0 22.2  0:07.29 java -jar lo_login_service-0.2-standalone.jar

15031 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.02 java -jar lo_login_service-0.2-standalone.jar

15032 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.25 java -jar lo_login_service-0.2-standalone.jar

15033 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15034 das        20   0 1157M  130M  9960 S  0.0 22.2  0:14.68 java -jar lo_login_service-0.2-standalone.jar

15035 das        20   0 1157M  130M  9960 S  0.0 22.2  0:11.46 java -jar lo_login_service-0.2-standalone.jar

15036 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15038 das        20   0 1157M  130M  9960 S  0.0 22.2  0:08.46 java -jar lo_login_service-0.2-standalone.jar

15039 das        20   0 1157M  130M  9960 S  0.0 22.2  0:04.50 java -jar lo_login_service-0.2-standalone.jar

15040 das        20   0 1157M  130M  9960 S  0.0 22.2  0:14.81 java -jar lo_login_service-0.2-standalone.jar

15041 das        20   0 1157M  130M  9960 S  0.0 22.2  0:03.93 java -jar lo_login_service-0.2-standalone.jar

15042 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.09 java -jar lo_login_service-0.2-standalone.jar

15043 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15044 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15045 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15046 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15047 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

15048 das        20   0 1157M  130M  9960 S  0.0 22.2  0:00.00 java -jar lo_login_service-0.2-standalone.jar

为什么htop会向我显示如此多的PID?

1 个答案:

答案 0 :(得分:1)

那些可能是您的应用程序使用的线程。要仅显示该过程,您可以按F2(设置)> Display options> Hide userland threads> F10(保存)。

您可以在此处看到隐藏/显示用户线程的示例(它们在此处显示为树,因为启用了同一菜单中的选项Tree view):

enter image description here

编辑:我忘了提到PID列中的数字不是线程的PID,而是内核线程“ID”(不确定这是否是正确的术语)。使用上面图像的场景作为源,您可以在/proc/2321/tasks

中找到它们
$ ls /proc/2321/task      
2321  2323  2325  2326  2327