'ps' в Slackware работает странно, почему он показывает процесс несколько раз?

У нас есть приложение, развернутое на нескольких разных платформах, Windows и Linux. Он состоит из трех процессов Java.

В Linux, когда мы хотим, чтобы идентификатор процесса убил и перезапустил один из них, мы делаем:

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

В конце "man 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

Заранее большое спасибо.

2 ответа

Вы, вероятно, обнаружите, что ps на slackware показывает вам отдельные потоки для каждого процесса. Потоки в Linux - это в основном отдельные процессы, созданные с использованием clone (), а не fork (), что оставляет их с тем же адресным пространством. В ядре 2.6 ps обычно может определить, какие процессы являются потоками, а какие нет. Возможно, у slackware немного другое поведение для их версии PS.

Вы можете найти лучшую / другую удачу, используя

ps auxw | grep java

Похоже, вы видите темы, какую версию "PS" он использует? Попросите его проверить страницу руководства, чтобы узнать, как показать процессы без их потоков.

Другие вопросы по тегам