30 Handige 'ps Command'-voorbeelden voor Linux-procesmonitoring
ps (processes status) is een native Unix/Linux-hulpprogramma voor het bekijken van informatie over een selectie van actieve processen op een systeem: het leest deze informatie uit de virtuele bestanden in de/proc-bestandssysteem. Het is een van de belangrijke hulpprogramma's voor systeembeheer, specifiek onder procesbewaking, om u te helpen begrijpen wat er in een Linux-systeem gebeurt.
Het heeft talloze opties om de uitvoer te manipuleren, maar een klein aantal daarvan is praktisch bruikbaar voor dagelijks gebruik.
Lees ook: alles wat u moet weten over processen in Linux [uitgebreide handleiding]
In dit artikel bekijken we 30 nuttige voorbeelden van ps-opdrachten voor het monitoren van actieve lopende processen op een Linux-systeem.
Merk op dat ps uitvoer produceert met een kopregel, die de betekenis van elke kolom met informatie weergeeft. Je kunt de betekenis van alle labels vinden op de ps man-pagina.
Maak een lijst van alle processen in de huidige shell
1. Als u de ps-opdracht zonder argumenten uitvoert, worden processen voor de huidige shell weergegeven.
ps
Druk alle processen in verschillende formaten af
2. Geef elk actief proces op een Linux-systeem weer in generiek (Unix/Linux) formaat.
ps -A
OR
ps -e
3. Geef alle processen weer in BSD-formaat.
ps au
OR
ps axu
4. Om een volledige weergave uit te voeren, voegt u de vlag -f
of -F
toe.
ps -ef
OR
ps -eF
Toon door de gebruiker lopende processen
5. U kunt alle processen selecteren die uw eigendom zijn (uitvoerder van het ps-commando, root in dit geval), typ:
ps -x
6. Om de processen van een gebruiker weer te geven op echte gebruikers-ID (RUID) of naam, gebruikt u de vlag -U
.
ps -fU tecmint
OR
ps -fu 1000
7. Om de processen van een gebruiker te selecteren op effectieve gebruikers-ID (EUID) of naam, gebruikt u de optie -u
.
ps -fu tecmint
OR
ps -fu 1000
Druk alle processen af die als root worden uitgevoerd (echte en effectieve ID)
8. Met de onderstaande opdracht kunt u elk proces bekijken dat wordt uitgevoerd met root gebruikersrechten (echte en effectieve ID) in gebruikersformaat.
ps -U root -u root
Groepsprocessen weergeven
9. Als u alle processen wilt weergeven die eigendom zijn van een bepaalde groep (echte groeps-ID (RGID) of naam), typt u.
ps -fG apache
OR
ps -fG 48
10. Om alle processen weer te geven die eigendom zijn van de effectieve groepsnaam (of sessie), typt u.
ps -fg apache
Weergaveprocessen per PID en PPID
11. U kunt processen als volgt weergeven op PID.
ps -fp 1178
12. Als u een proces wilt selecteren op PPID, typt u.
ps -f --ppid 1154
13. Maak een selectie met behulp van een PID-lijst.
ps -fp 2226,1154,1146
Weergaveprocessen per TTY
14. Om processen op tty te selecteren, gebruikt u de vlag -t als volgt.
ps -t pts/0
ps -t pts/1
ps -ft tty1
Afdrukprocesboom
15. Een procesboom laat zien hoe processen op het systeem aan elkaar zijn gekoppeld; processen waarvan de ouders zijn gedood, worden overgenomen door de init (of systemd).
ps -e --forest
16. U kunt op deze manier ook een procesboom voor een bepaald proces afdrukken.
ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd
Afdrukprocesthreads
17. Om alle threads van een proces af te drukken, gebruikt u de vlag -L
. Dit toont de LWP (lichtgewicht proces) en de kolommen NLWP (het aantal lichtgewicht processen).
ps -fL -C httpd
Geef een aangepast uitvoerformaat op
Met behulp van de opties -o of –format kunt u met ps door de gebruiker gedefinieerde uitvoerformaten bouwen, zoals hieronder weergegeven.
18. Om alle formaatspecificaties weer te geven, voegt u de vlag L
toe.
ps L
19. Met het onderstaande commando kunt u de PID, PPID, gebruikersnaam en opdracht van een proces bekijken.
ps -eo pid,ppid,user,cmd
20. Hieronder ziet u nog een voorbeeld van een aangepast uitvoerformaat waarin de bestandssysteemgroep, de mooie waarde, de starttijd en de verstreken tijd van een proces worden weergegeven.
ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Om een procesnaam te vinden met behulp van de PID.
ps -p 1154 -o comm=
Geef ouder- en kindprocessen weer
22. Om een specifiek proces op naam te selecteren, gebruikt u de vlag -C. Hierdoor worden ook alle onderliggende processen weergegeven.
ps -C sshd
23. Vind alle PID's van alle instanties van een proces, handig bij het schrijven van scripts die PID's uit een std-uitvoer of bestand moeten lezen.
ps -C httpd -o pid=
24. Controleer de uitvoeringstijd van een proces.
ps -eo comm,etime,user | grep httpd
De onderstaande uitvoer laat zien dat de HTTPD-service 1 uur, 48 minuten en 17 seconden actief is.
Problemen met Linux-systeemprestaties oplossen
Als uw systeem niet naar behoren werkt, bijvoorbeeld als het ongewoon traag is, kunt u als volgt systeemproblemen oplossen.
26. Vind de best lopende processen op basis van het hoogste geheugen- en CPU-gebruik in Linux.
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Om Linux-processen/niet-reagerende applicaties of elk proces dat veel CPU-tijd in beslag neemt, te beëindigen.
Zoek eerst de PID van het niet-reagerende proces of de applicatie.
ps -A | grep -i stress
Gebruik vervolgens het kill-commando om het onmiddellijk te beëindigen.
kill -9 2583 2584
Beveiligingsinformatie afdrukken
28. Toon beveiligingscontext (specifiek voor SELinux) zoals deze.
ps -eM
OR
ps --context
29. Met deze opdracht kunt u ook beveiligingsinformatie weergeven in een door de gebruiker gedefinieerd formaat.
ps -eo euser,ruser,suser,fuser,f,comm,label
Voer realtime procesbewaking uit met behulp van Watch Utility
30. Tenslotte, aangezien ps statische informatie weergeeft, kunt u het watch-hulpprogramma gebruiken om real-time procesmonitoring uit te voeren met herhaalde uitvoer, die na elke seconde wordt weergegeven, zoals in de onderstaande opdracht (geef een aangepast ps-commando op om uw doel te bereiken).
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Belangrijk: ps toont alleen statische informatie. Om regelmatig bijgewerkte uitvoer te bekijken kun je tools gebruiken zoals htop; top, en een blik: de laatste twee zijn in feite Linux-tools voor het monitoren van systeemprestaties.
Misschien wilt u ook de volgende gerelateerde artikelen lezen.
- Hoe u een procesnaam kunt vinden met behulp van het PID-nummer in Linux
- Vind de best lopende processen op basis van het hoogste geheugen- en CPU-gebruik in Linux
- Een gids voor Kill-, Pkill- en Killall-opdrachten om een proces in Linux te beëindigen
- Hoe u lopende processen in Linux kunt vinden en beëindigen
- Hoe Linux Command op de achtergrond te starten en het proces in Terminal te ontkoppelen
Dat is het voor nu. Als je nuttige voorbeelden van ps-commando's hebt om te delen (en niet te vergeten uit te leggen wat het doet), gebruik dan het onderstaande reactieformulier.