1

В чем разница между процессами, перечисленными ps и ps -A ?

2 ответа2

3

без -A ps будет печатать только процессы, принадлежащие текущему сеансу. Думайте об этом как "абсолютно все". В связанной заметке -a делает то же самое, но ограничивая ее владельцем сеанса (имя пользователя).

0

Команда GNU ps страдает от серьезного случая множественного расстройства личности. Поэтому неудивительно, что его страница руководства сбивает с толку. Возможно, поможет просмотр руководств BSD. В конце концов, этот вопрос помечен .

Работа BSD ps довольно проста, если иметь в виду две вещи:

  • Процессы выбираются для отображения с использованием двух основных фильтров. Эти фильтры включены по умолчанию и параметры командной строки , отключить их. Обычный неукрашенный ps , таким образом, фильтруется через оба.
  • Синтаксис BSD уходит очень далеко. Хотя современные BSD используют getopt и соглашение о параметрах с префиксом минус, соответствующие параметры и поведение здесь практически такие же, как и 30 лет назад.

Это поведение таково:

  • Опция -a (исторически a) отключает фильтрацию всех "селекторов".
    • Различные другие параметры командной строки определяют селекторы: -U выбирает по UID, -t управляет именем терминала, -p выбирает по идентификатору процесса и т.д. Все это обойдено -a .
    • Если никакие селекторы не указаны явно, селектор по умолчанию должен отображать только процессы, выполняющиеся с тем же эффективным UID, что и пользователь, вызвавший ps . Этот селектор по умолчанию является историческим фильтром, который эта опция отключает.
  • Опция -x (исторически x) отключает ограничение, при котором ps отображает только процессы, которые имеют управляющий терминал.

Исторически, у BSD ps не было опции A Но современные BSD реализуют опцию -A , также используемую как A , для (степени) совместимости с (более поздней) единой спецификацией UNIX. -A просто аналогичен использованию -a и -x: он отключает оба ограничения, оставляя один со всеми процессами нефильтрованным.

OpenBSD и NetBSD документируют опцию -A , в случае NetBSD явно как -a -x . FreeBSD этого не делает, но комментарий в исходном коде гласит, что он есть как намеренно недокументированный вариант совместимости с SUSv5.

дальнейшее чтение

  • ps 1983-04-13. 4.2BSD Справочные страницы.
  • ps Страницы руководства OpenBSD.
  • ps 2009-10-22. Страницы руководства по NetBSD.
  • ps 2014-08-07. Страницы Руководства FreeBSD.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .