Controleer lopende processen als een krachtige gebruiker
Loopt je Linux-systeem traag? Of ben je gewoon nieuwsgierig naar wat er zich onder de motorkap afspeelt? Er is een krachtig ingebouwd programma genaamd "ps" waarmee gebruikers een snapshot kunnen bekijken van de processen die op een systeem worden uitgevoerd. We bespreken enkele van de opties die beschikbaar zijn voor ps, en na afloop zou je in staat moeten zijn om loopprocessen op je Linux-computer te controleren als een ervaren nerd.
Invoering
De meeste versies van ps
accepteren BSD-stijlopties (die kunnen worden gegroepeerd en NIET met een streepje moeten worden gebruikt), UNIX-stijlopties (die kunnen worden gegroepeerd en MOETEN worden gebruikt met een streepje) en opties voor GNU-long (die worden voorafgegaan door twee streepjes). Voor dit artikel zullen we meerdere optietypen mengen en gebruiken, met een voorkeur voor UNIX-stijlen. Bijvoorbeeld:
ps -u root u -sort = pid
- UNIX STYLE
-u root
geeft gebruiker = root aan - BSD STYLE
u
geeft de weergave van een gebruikersgericht formaat op. Dit is een favoriete optie, omdat het uitvoerformaat dat wordt geproduceerd door dit te gebruiken, enkele zeer nuttige informatie bevat. - GNU LONG OPTION
–sort
geeft de sorteervolgorde voor het proces aan. In dit geval, sorteer op proces-id (pid)
Dit artikel geeft de voorkeur aan UNIX-opties en gebruikt BSD alleen voor beknoptheid. Bijvoorbeeld het commando
ps u
toont de processen van de huidige gebruiker die aan een terminal zijn gekoppeld, met een "gebruikersgeoriënteerd" uitvoerformaat. Voor het verkrijgen van hetzelfde uitvoerformaat met UNIX-opties is de optie vereist
ps -o "gebruiker, pid, pcpu, pmem, vsz, rss, tty, stat, bsdstart, bsdtime, args"
De argument-verklaringen van deze 'o'-optie zijn:
- gebruiker - de effectieve userid of gebruikersnaam van het proces
- pid - de proces-ID
- pcpu - de cpu-tijd gebruikt door het proces gedeeld door de tijd dat het proces is gestart
- pmem - het percentage van het fysieke geheugen dat door het proces wordt gebruikt
- vsz - de virtuele geheugengrootte van het proces
- rss - het niet-verwisselde fysieke geheugen dat het proces heeft gebruikt
- tty - de controlerende terminal van het proces
- stat - de processtatus, bepaald met processtatuscodes (lees de manpagina's voor meer info)
- start_tijd - de tijd waarop de opdracht is gestart
- tijd - de cumulatieve cpu-tijd die door het proces wordt gebruikt
- args - de opdracht die wordt gebruikt om het proces uit te voeren, samen met zijn argumenten. (Dit is een reden waarom het nooit een goed idee is om een opdracht uit te voeren en uw wachtwoord in te voeren als een argument in de opdrachtregel. Elke andere gebruiker op het systeem kan
ps
en de opdrachten zien die u uitvoert, samen met alle opties en argumenten die zijn doorgegeven ).
De conventie die voortaan wordt gebruikt, is de opdracht (ps) gevolgd door de BSD 'u' optie om uitvoerformattering te specificeren, en vervolgens de UNIX- en GNU-opties zoals vereist.
Sommige 'PS'-opties
Running 'ps' zonder argumenten toont een lijst van processen met dezelfde gebruikers-ID als de invoker en geassocieerd met dezelfde terminal als de invoker.
Om alle lopende processen te tonen:
ps u -e
Om alle processen van de huidige gebruiker te tonen:
ps u -u `whoami`
Alle processen door de huidige gebruiker laten zien, maar gesorteerd op cpu-gebruik (aflopend).
OPMERKING: in de onderstaande opdracht gebruiken we '-pcpu' om het percentage cpu-gebruik te laten dalen. Gebruik '+ pcpu' of alleen 'pcpu' voor oplopend. Raadpleeg de man-pagina's voor aanvullende sorteerspecificaties. Enkele veel voorkomende daarvan zijn pmem (geheugengebruik), starttijd (tijd waarop het commando werd uitgevoerd) en tijd (hoeveelheid cpu-tijd gebruikt door het commando).
ps u -u `whoami` --sort = -pcpu
Om alle processen door de huidige gebruiker te laten zien, in een boomstructuur:
ps u -jH -u `whoami`
Met behulp van buizen kan ps worden gecombineerd met het hoofd om de topprocessen te tonen. De volgende opdracht sorteert eerst op geheugengebruik en vervolgens op pijpen door de kop om de processen weer te geven die het meeste geheugen gebruiken. Head toont standaard de eerste tien regels, dus deze opdracht zou de top negen processen weergeven (de output-header is de eerste regel).
Opmerking: "% mem" en "pmem" zijn synoniemen, net als "% cpu" en "pcpu".
ps u -u `whoami` --sort = -% mem | hoofd
Als u hetzelfde wilt weergeven voor alle processen, ongeacht de gebruiker, gebruikt u de optie -e
:
ps u -e --sort = -% mem | hoofd
Conclusie
Er zijn letterlijk honderden opties (hoewel sommige aliassen zijn), en we horen graag van je favoriete gebruiksmethoden en zien die. Gelieve te delen in de reacties hieronder.