В чем разница между процессами, перечисленными `ps` и`ps -A`?
В чем разница между процессами, перечисленными ps
а также ps -A
?
2 ответа
Без -A
, ps будет печатать только процессы, принадлежащие текущему сеансу. Думайте об этом как "абсолютно все". На связанной ноте -a
делает то же самое, но ограничивая его владельцем сеанса (имя пользователя).
GNU ps
Командование страдает от серьезного случая множественного расстройства личности. Поэтому неудивительно, что его страница руководства сбивает с толку. Возможно, просмотр руководств BSD может помочь. Ведь этот вопрос помечен как unix.
Операция БСД 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.