Slackware上的'ps'很奇怪,为什么会多次显示这个过程?

我们有一个应用程序部署在一些不同的平台,Windows和Linux上。 它由三个java进程组成。

在Linux上,当我们想要进程ID杀死并重新启动其中一个时,我们执行:

ps -ef | grep java 

结果是显示三个过程的三条线。

我们的一个客户使用Slackware,当我们做同样的命令的时候,结果是几行,每一行都有几十行。 更糟糕的是,其中许多线路只显示:

 root 3470 0.0 3.1 1468048 64944 ? S 07:33 0:00 java 

这是错误信息,因为我们无法确定这三个模块中的哪一个。

有什么关于slackware和ps命令?

更多信息:

Slackware版本:10.2.0

内核版本:

 Linux version 2.4.32-abi (root@servidor) (gcc version 3.3.6) #3 Mon Sep 29 10:27:28 GMT 2008 

最后,“男人ps”说:

 STANDARDS This ps conforms to: 1 Version 2 of the Single Unix Specification 2 The Open Group Technical Standard Base Specifications, Issue 6 3 IEEE Std 1003.1, 2004 Edition 4 X/Open System Interfaces Extension [UP XSI] 5 ISO/IEC 9945:2003 

非常感谢。

您可能会发现slackware上的ps向您显示每个进程的单独线程。 Linux中的线程基本上是使用clone()而不是fork()创build的独立进程,这使得它们具有相同的地址空间。 在2.6内核上,ps通常可以检测哪些进程是线程,哪些不是。 也许slackware对于它们的ps版本有一个稍微不同的行为。

你可能会发现更好的/不同的运气使用

 ps auxw | grep java 

听起来像你看到的线程,他使用什么版本的“PS”? 要求他检查手册页,以显示没有线程的进程。