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 barau
? - @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 attps 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:
- UNIX-alternativ, som kan vara grupperade och måste föregås av en streck.
- BSD-alternativ, som kan grupperas och inte får användas med en streck.
- 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
ochx
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 ...
.