Vad betyder aux i `ps aux`?

ps aux verkar enkelt lista alla processer och deras status och resursanvändning (Linux / BSD / MacOS), men jag kan inte förstå innebörden av parameter aux med man ps.

Vad gör aux betyder?

Kommentarer

  • BTW ps = processstatus

Svara

a = visa processer för alla användare
u = visa processens användare / ägare
x = visa också processer som inte är kopplade till en terminal

Förresten är man ps en bra resurs.

Historiskt sett är BSD och AT & T utvecklade inkompatibla versioner av ps. Alternativen utan en ledande streck (enligt frågan) är BSD-stil medan de med en ledande streck är AT & T Unix-stil. Utöver detta utvecklade Linux en version som stöder båda stilarna och lägger sedan till en tredje stil med alternativ som börjar med dubbla streck.

Alla (eller nästan alla) icke-inbäddade Linux-distributioner använder en variant av procps svit. Ovanstående alternativ definieras i procps ps mansidan .

I kommentarerna , du säger att du använder Apple MacOS (OSX, antar jag). OSX-mansidan för ps är här och den visar endast stöd för AT & T-stil.

Kommentarer

  • @HowardGuo Är du säker på att det inte är ' t -u till skillnad från bara u?
  • @HowardGuo Jag har uppdaterat svaret för att återspegla skillnaderna mellan GNU (Linux) version av ps och Apple OSX-versionen. Denna fråga är för närvarande märkt " Linux ". Om du också frågar om MacOS kanske du vill uppdatera taggarna.
  • Tack så mycket. Jag kollade precis manuell sida av ps i Linux och den har information angående aux, MacOS ' manuell sida har inte sådan information, den kanske vara ett dokumentfel.
  • OSX-mansida för ps säger " … ps aux fungerar fortfarande som i Tiger " under " Legacy Description " avsnitt.
  • Jag måste invända mot kommentaren att " man ps är en bra resurs på mac OSX. Man-sidan, bara i slutet, konstaterar att ps aux upprätthålls som en bekvämlighet, men det finns absolut ingen antydan om att alternativ kan anges utan ledande bindestreck innan slutet, mannen sidan är lång och rikt komplex, och en läsare kan spendera mycket tid på att ifrågasätta hans förnuft innan han ger upp och googlar för denna stackexchange-fråga.

Svar

 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. 

Exempel

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

Med ovanstående växlar du ” Jag får utdata om dina processer som ovan.

Omkopplarna aux visar dig:

  • alla användares ”processer
  • visar den process som anges på ett användarorienterat sätt (efter användarnamn)
  • visar alla processer, inte bara de som är anslutna till en terminal. Detta kommer att inkludera processer som tjänster som crond, upowerd, etc.

Svar

Nyckeln till att förstå manpage är inte att söka efter ”aux” (som jag försökte först), utan att fokusera på det avsnitt som beskriver typ av parameter ps tar:

Denna version av ps accepterar flera typer av alternativ:

  1. UNIX-alternativ, som kan vara grupperade och måste föregås av en streck.
  2. BSD-alternativ, som kan grupperas och inte får användas med en streck.
  3. GNU-långa alternativ, som föregås av två streck.

Från detta vet vi att aux är en uppsättning (grupperad ) BSD-alternativ, a, u och x, vilket gör dem lite lättare att se ut upp.

  • a och x kontro l vilka processer som väljs och används tillsammans beskrivs uttryckligen för att välja alla processer.

  • u utgångar med de ”användarorienterade ”format, vilket ger fler kolumner, inklusive användar-id och CPU / minnesanvändning.

Eftersom u ensam styr utdataformatet kan du få ”ps aux” stilutdata bara för specifika processer med ps u $pid1 $pid2 ....

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *