Что означает aux в `ps aux`?

162

ps auxкажется, удобно перечислить все процессы и их статус и ресурс использования (Linux / BSD / MacOS), однако я не могу понять смысл параметра auxиспользования man ps.

Что auxзначит?

Говард
источник

Ответы:

209

a = показать процессы для всех пользователей
u = показать пользователя / владельца процесса
x = также показать процессы, не подключенные к терминалу

Кстати, man psэто хороший ресурс.

Исторически BSD и AT & T разрабатывали несовместимые версии ps. Опции без начального тире (в соответствии с вопросом) - это стиль BSD, а опции с лидирующим штрихом - в стиле AT & T Unix. Вдобавок к этому Linux разработал версию, которая поддерживает оба стиля, а затем добавляет к ней третий стиль с опциями, которые начинаются с двойных черточек.

Все (или почти все) не встроенные дистрибутивы Linux используют вариант пакета procps . Вышеуказанные параметры определены на странице руководства procpsps .

В комментариях вы говорите, что используете Apple MacOS (я полагаю, OSX). Страница людей OSX для psэто здесь , и это показывает поддержку только для AT & T стиля.

John1024
источник
1
@HowardGuo Вы уверены, что это не -uтак просто u?
Иордания
2
@HowardGuo Я обновил ответ, чтобы отразить различия между версией GNU (Linux) и версией psApple OSX. Этот вопрос в настоящее время помечен как «Linux». Если вы спрашиваете также о MacOS, вы можете обновить теги.
John1024
1
Большое спасибо. Я только что проверил страницу руководства по ps в Linux, и она содержит информацию о том aux, что страница руководства MacOS не содержит такой информации, это может быть ошибка документа.
Говард
2
Страница руководства по OSX для ps«... по- ps auxпрежнему работает так же, как и в Tiger» в разделе «Legacy Description».
Dev
3
Я должен возразить против комментария, что « man psэто хороший ресурс для Mac OSX. Страница man, только в самом конце, ps auxсодержит примечания, которые поддерживаются для удобства, но нет абсолютно никакого намека на то, что параметры могут быть указаны без начальных дефисов перед конец, страница людей долго и богато сложный, и читатель может провести много времени допроса его / ее здравомыслия , прежде чем давать и прибегая к помощи этому stackexchange вопроса.
Reb.Cabin
15
   a      Lift the BSD-style "only yourself" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.  
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          with a terminal (tty), or to list all processes when used together 
          with the x option.

   u      Display user-oriented format.

   x      Lift the BSD-style "must have a tty" restriction, which is imposed 
          upon the set of all processes when some BSD-style (without "-") 
          options are used or when the ps personality setting is BSD-like.
          The set of processes selected in this manner is in addition to the 
          set of processes selected by other means.  An alternate 
          description is that this option causes ps to list all processes 
          owned by you (same EUID as ps), or to list all processes when used 
          together with the a option.

пример

$ ps aux | head -10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0  51120  2796 ?        Ss   Dec22   0:09 /usr/lib/systemd/systemd --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    Dec22   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    Dec22   0:04 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   Dec22   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S    Dec22   0:15 [migration/0]
root         8  0.0  0.0      0     0 ?        S    Dec22   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        S    Dec22   2:47 [rcu_sched]
...
saml      3015  0.0  0.0 117756   596 pts/2    Ss   Dec22   0:00 bash
saml      3093  0.9  4.1 1539436 330796 ?      Sl   Dec22  70:16 /usr/lib64/thunderbird/thunderbird
saml      3873  0.0  0.1 1482432 8628 ?        Sl   Dec22   0:02 gvim -f
root      5675  0.0  0.0 124096   412 ?        Ss   Dec22   0:02 /usr/sbin/crond -n
root      5777  0.0  0.0  51132  1068 ?        Ss   Dec22   0:08 /usr/sbin/wpa_supplicant -u -f /var/log/wpa_supplica
saml      5987  0.7  1.5 1237740 119876 ?      Sl   Dec26  14:05 /opt/google/chrome/chrome --type=renderer --lang=en-
root      6115  0.0  0.0      0     0 ?        S    Dec27   0:06 [kworker/0:2]
...

С помощью вышеуказанных переключателей вы получите вывод о ваших процессах, как указано выше.

Переключатели auxпокажут вам:

  • все процессы пользователей
  • показать вам процесс, перечисленный в ориентированной на пользователя манере (по именам пользователей)
  • показать вам все процессы, а не только те, которые подключены к терминалу. Это будет включать такие процессы, как сервисы, такие как crond, upowerd и т. Д.
SLM
источник
6

Ключ к пониманию man-страницы заключается не в поиске «aux» (который я пробовал первым), а в сосредоточении внимания на разделе, описывающем виды параметров, psпринимаемых:

Эта версия PS принимает несколько видов опций:

  1. Опции UNIX, которые могут быть сгруппированы, и перед ними должна стоять тире.
  2. Опции BSD, которые могут быть сгруппированы и не должны использоваться с тире.
  3. Длинные опции GNU, которым предшествуют две черты.

Исходя из этого, мы знаем, что auxэто набор (сгруппированных) опций BSD a, uи xкоторый немного облегчает их поиск.

  • aи xуправление тем, какие процессы выбраны и используются вместе, подробно описаны для выбора всех процессов.

  • u выводится с использованием «ориентированного на пользователя» формата, который дает больше столбцов, включая идентификатор пользователя и использование ЦП / памяти.

mwfearnley
источник
Следствием этого является то, что если вам нужен вывод в стиле «ps aux» для процесса, вы можете получить его, опуская aи x, и просто делая ps u $pid.
mwfearnley