Clojure “为什么?”;htop";显示我的应用程序正在使用的数十个PID,但是;ps";只给我看一个?
我正在开发Clojure应用程序。我正在服务器上测试它,主要是通过进入“屏幕”会话并键入: java-jar lo_login_service-0.2-standalone.jar 然后我通过点击Control-C来杀死它。然后我做一些改变。然后我再测试一次 我假设只有一个PID在使用。如果我这样做:Clojure “为什么?”;htop";显示我的应用程序正在使用的数十个PID,但是;ps";只给我看一个?,clojure,ps,htop,Clojure,Ps,Htop,我正在开发Clojure应用程序。我正在服务器上测试它,主要是通过进入“屏幕”会话并键入: java-jar lo_login_service-0.2-standalone.jar 然后我通过点击Control-C来杀死它。然后我做一些改变。然后我再测试一次 我假设只有一个PID在使用。如果我这样做: ps aux 我只看到1个PID在使用: das 15028 0.2 22.1 1185300 133520 pts/5 Sl+ Jul26 3:19 java -jar l
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 这些可能是应用程序使用的线程。要仅显示进程,可以按F2(设置)>
显示选项
隐藏用户线程
F10(保存)
您可以在这里看到一个隐藏/显示用户线程的示例(它们在这里显示为树,因为同一菜单中的选项树视图
已启用):
编辑:我忘了提到PID列中的数字不是线程的PID,而是内核线程“ID”(不确定这是否是正确的术语)。使用上面图像的场景作为源代码,您可以在/proc/2321/tasks
中找到它们:
$ ls /proc/2321/task
2321 2323 2325 2326 2327
谢谢你,但是数字是多少?15029、15031等等。它们看起来和PID完全一样。但是线程在这里没有PIDs.htop作者@塞勒姆的回答是正确的。线程具有TID,其工作方式与PID类似。有关更多信息,请参见man 5 proc
。