Що означає «aux» у «ps aux»?


161

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

Що auxозначає?

Відповіді:


208

a = показати процеси для всіх користувачів
u = відобразити користувача / власника процесу
x = також показати процеси, не приєднані до терміналу

До речі, man psце хороший ресурс.

Історично BSD та AT&T розробляли несумісні версії ps. Параметри без ведучого тире (відповідно до питання) є стилем BSD, а варіанти з провідним тире - стилем AT&T Unix. Крім цього, Linux розробив версію, яка підтримує обидва стилі, а потім додає до нього третій стиль з опціями, які починаються з подвійних тире.

Всі (або майже все) розподіл не-Embedded Linux використовують варіант PROCPS свити. Вищевказані варіанти , як це визначено в Procps psсторінці людини .

У коментарях ви кажете, що використовуєте Apple MacOS (OSX, я припускаю). Сторінка людей OSX для psце тут , і це показує підтримку тільки для AT & T стилю.


1
@HowardGuo Ви впевнені, що це не -uна відміну від просто u?
Йорданм

2
@HowardGuo Я оновив відповідь, щоб відобразити відмінності між версією GNU (Linux) та версією psApple OSX. На даний момент це питання позначено "Linux". Якщо ви також запитуєте про MacOS, ви можете оновити теги.
John1024

1
Дуже дякую. Я щойно перевірив сторінку керівництва ps в Linux і в ній є інформація щодо aux, на сторінці керівництва MacOS немає такої інформації, це може бути помилка в документі.
Говард

2
Сторінка OSX для користувача psкаже: "... ps auxяк і раніше працює, як це було в Тигра", в розділі "Спадковий опис".
дев

3
Я маю заперечити проти зауваження, що " man psце хороший ресурс на mac OSX. Сторінка man, лише в самому кінці, зазначає, що ps auxце підтримується як зручність, але немає абсолютно ніякого натяку на те, що параметри можуть бути вказані без провідних дефісів раніше Зрештою, сторінка людини довга і насичена, і читач може витратити чимало часу на сумніви у своїй розумності, перш ніж здаватися і гугнути за цим питанням
обміну ставками

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 тощо.

6

Ключ до розуміння сторінки керівництва не шукав «AUX» (який я спробував перший), але зосередитися на розділі , який описує види параметра psприймає:

Ця версія PS приймає декілька варіантів:

  1. Параметри UNIX, які можуть бути згруповані та повинні передувати тире.
  2. Параметри BSD, які можуть бути згруповані і не повинні використовуватися з тире.
  3. GNU довгі варіанти, яким передують два тире.

З цього ми знаємо, що auxце набір (згрупованих) BSD-параметрів a, uі x, що полегшує їх пошук.

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

  • u виводить у форматі "орієнтований на користувача", який дає більше стовпців, включаючи ідентифікатор користувача та використання процесора / пам'яті.


Наслідком цього є те, що якщо ви хочете виводити стиль "ps aux" для процесу, ви можете отримати його, покинувши aі x, і просто виконавши ps u $pid.
mwfearnley
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.