В чем разница между процессами, перечисленными `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.
дальнейшее чтение
ps1983-04-13. 4.2BSD Справочные страницы.psСтраницы руководства OpenBSD.ps2009-10-22. Страницы руководства по NetBSD.ps2014-08-07. Страницы Руководства FreeBSD.