Co oznacza aux w `ps aux`?

161

ps auxWydaje się wygodnie listy wszystkich procesów i ich stan i wykorzystanie zasobów (Linux / BSD / MacOS), jednak nie mogę pojąć znaczenie parametru auxużyciu man ps.

Co auxznaczy

Howard
źródło

Odpowiedzi:

208

a = pokaż procesy dla wszystkich użytkowników
u = wyświetl użytkownika / właściciela procesu
x = pokaż również procesy niepodłączone do terminala

Nawiasem mówiąc, man psjest dobrym zasobem.

Historycznie BSD i AT&T opracowały niekompatybilne wersje ps. Opcje bez wiodącego myślnika (zgodnie z pytaniem) to styl BSD, podczas gdy te z wiodącym myślnikiem to styl AT&T Unix. Ponadto Linux opracował wersję, która obsługuje oba style, a następnie dodaje trzeci styl z opcjami rozpoczynającymi się od podwójnych myślników.

Wszystkie (lub prawie wszystkie) nie osadzone dystrybucje Linuksa używają wariantu pakietu procps . Powyższe opcje są takie jak zdefiniowano w procps psmanualu .

W komentarzach mówisz, że używasz Apple MacOS (przypuszczam, że OSX). Strona podręcznika OSX dla psjest tutaj i pokazuje wsparcie tylko dla stylu AT&T.

John1024
źródło
1
@HowardGuo Czy jesteś pewien, że nie jest tak, -ujak tylko u?
jordanm
2
@HowardGuo Zaktualizowałem odpowiedź, aby odzwierciedlić różnice między wersją GNU (Linux) a wersją psApple OSX. To pytanie jest obecnie oznaczone jako „Linux”. Jeśli pytasz także o MacOS, możesz chcieć zaktualizować tagi.
John1024,
1
Dziękuję bardzo. Właśnie sprawdziłem stronę podręcznika PS w Linuksie i zawiera ona informacje dotyczące aux, strona podręcznika systemu MacOS nie ma takich informacji, może to być błąd dokumentu.
Howard
2
Strona podręcznika OSX dla ps"mówi" ... ps auxnadal działa tak, jak w Tygrysie "w sekcji" Legacy Description ".
dev
3
Muszę sprzeciwić się komentarzowi, że „ man psjest dobrym zasobem w systemie Mac OSX. Strona podręcznika, tylko na samym końcu, zawiera notatki, które ps auxsą utrzymywane dla wygody, ale absolutnie nie ma żadnej wskazówki, że opcje można określić bez wcześniejszych łączników koniec, strona podręcznika jest długa i bogato złożona, a czytelnik może poświęcić wiele czasu na kwestionowanie swojego zdrowia psychicznego, zanim
zrezygnuje i przejrzy Google
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.

Przykład

$ 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]
...

Dzięki powyższym przełącznikom uzyskasz dane wyjściowe dotyczące twoich procesów jak wyżej.

Przełączniki auxpokażą Ci:

  • wszystkie procesy użytkowników
  • pokaż proces wymieniony w sposób zorientowany na użytkownika (według nazw użytkowników)
  • pokaż wszystkie procesy, nie tylko te podłączone do terminala. Obejmuje to procesy takie jak usługi takie jak crond, upowerd itp.
slm
źródło
6

Kluczem do zrozumienia strony podręcznika nie jest szukanie „aux” (co próbowałem wcześniej), ale skupienie się na sekcji opisującej rodzaje parametrów ps:

Ta wersja ps akceptuje kilka rodzajów opcji:

  1. Opcje UNIX, które mogą być pogrupowane i muszą być poprzedzone myślnikiem.
  2. Opcje BSD, które można grupować i nie można ich używać z myślnikiem.
  3. Długie opcje GNU, które są poprzedzone dwoma myślnikami.

Z tego wiemy, że auxjest to zestaw (pogrupowanych) opcji BSD a, ui x, co czyni je nieco łatwiejszymi do wyszukiwania.

  • aoraz xkontrola, które procesy są wybrane i użyte razem są wyraźnie opisane, aby wybrać wszystkie procesy.

  • u dane wyjściowe w formacie „zorientowanym na użytkownika”, który daje więcej kolumn, w tym identyfikator użytkownika i użycie procesora / pamięci.

mwfearnley
źródło
Następstwem tego jest to, że jeśli chcesz „ps aux” wyjście styl dla procesu, a następnie można je dostać poprzez pominięcie ai x, i po prostu robi ps u $pid.
mwfearnley