ps (processenstatus) 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 het /proc-bestandssysteem. Het is een van de belangrijke hulpprogramma’s voor systeembeheer, specifiek onder procesbewaking, om u te helpen begrijpen wat er gaande is in een Linux-systeem.
Het heeft talloze opties voor het manipuleren van de uitvoer, maar je zult er slechts een klein aantal praktisch nuttig vinden voor dagelijks gebruik.
Lees ook: Alles wat je moet weten over processen in Linux [Uitgebreide gids]
In dit artikel zullen we kijken naar 30 nuttige voorbeelden van ps-commando’s voor het bewaken van actieve processen op een Linux-systeem.
Let op dat ps uitvoer produceert met een koptekstregel, die de betekenis van elke kolom met informatie vertegenwoordigt. Je kunt de betekenis van alle labels vinden op de ps man-pagina.
Lijst Alle Processen in Huidige Shell
1. Als je het ps-commando uitvoert zonder argumenten, worden processen weergegeven voor de huidige shell.
$ ps

Druk Alle Processen Af in Verschillende Formaten
2. Toon elk actief proces op een Linux-systeem in generiek (Unix/Linux) formaat.
$ ps -A OR $ ps -e

3. Toon alle processen in BSD-indeling.
$ ps au OR $ ps axu

4. Om een volledige lijst opmaak uit te voeren, voeg de -f
of -F
vlag toe.
$ ps -ef OR $ ps -eF

Weergave van door gebruiker uitgevoerde processen
5. U kunt alle processen selecteren die eigendom zijn van u (uitvoerder van het ps commando, in dit geval root), typ:
$ ps -x
6. Om de processen van een gebruiker weer te geven op basis van de echte gebruikers-ID (RUID) of naam, gebruik de -U
vlag.
$ ps -fU tecmint OR $ ps -fu 1000

7. Om de processen van een gebruiker te selecteren op basis van de effectieve gebruikers-ID (EUID) of naam, gebruik de -u
optie.
$ ps -fu tecmint OR $ ps -fu 1000
Weergave van alle processen die worden uitgevoerd als root (echte en effectieve ID)
8. De onderstaande opdracht stelt je in staat om alle processen te bekijken die worden uitgevoerd met gebruikersrechten van root (echte & effectieve ID) in gebruikersformaat.
$ ps -U root -u root

Weergave van groepsprocessen
9. Als je alle processen wilt weergeven die eigendom zijn van een bepaalde groep (echte groeps-ID (RGID) of naam), typ.
$ ps -fG apache OR $ ps -fG 48

10. Om alle processen eigendom van effectieve groepsnaam (of sessie) te vermelden, typ.
$ ps -fg apache
Weergave van processen op basis van PID en PPID
11. Je kunt processen vermelden op basis van PID als volgt.
$ ps -fp 1178

12. Om proces te selecteren op basis van PPID, typ.
$ ps -f --ppid 1154

13. Maak een selectie met behulp van een PID lijst.
$ ps -fp 2226,1154,1146

Weergave van processen op basis van TTY
14. Om processen te selecteren op basis van tty, gebruik de -t vlag zoals volgt.
$ ps -t pts/0 $ ps -t pts/1 $ ps -ft tty1

Print Procesboom
15. Een procesboom toont hoe processen op het systeem met elkaar verbonden zijn; processen waarvan de ouders zijn beëindigd worden overgenomen door init (of systemd).
$ ps -e --forest

16. Je kunt ook een procesboom afdrukken voor een bepaald proces zoals dit.
$ ps -f --forest -C sshd OR $ ps -ef --forest | grep -v grep | grep sshd

Print Procesthreads
17. Om alle threads van een proces af te drukken, gebruik de -L
vlag, dit zal de LWP (lichtgewicht proces) evenals NLWP (aantal lichtgewicht processen) kolommen tonen.
$ ps -fL -C httpd

Specificeer Aangepaste Outputindeling
Met behulp van de -o of –format opties, laat ps je toe om door de gebruiker gedefinieerde outputindelingen te maken zoals hieronder getoond.
18. Om alle indelingsspecifiers op te sommen, voeg de L
vlag toe.
$ ps L
19. Het onderstaande commando stelt je in staat om de PID, PPID, gebruikersnaam en commando van een proces te bekijken.
$ ps -eo pid,ppid,user,cmd

20. Hieronder volgt nog een voorbeeld van een aangepaste outputindeling die de bestandssysteemgroep, nice-waarde, starttijd en verstreken tijd van een proces toont.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. Om een procesnaam te vinden aan de hand van zijn PID.
$ ps -p 1154 -o comm=

Toon Ouder- en Kindprocessen
22. Om een specifiek proces te selecteren op basis van zijn naam, gebruik de -C vlag, dit zal ook al zijn kindprocessen weergeven.
$ ps -C sshd

23. Zoek alle PID’s van alle instanties van een proces, handig bij het schrijven van scripts die PID’s moeten lezen van een standaarduitvoer of bestand.
$ ps -C httpd -o pid=

24. Controleer de uitvoeringstijd van een proces.
$ ps -eo comm,etime,user | grep httpd
De uitvoer hieronder toont aan dat de HTTPD-service al 1 uur, 48 minuten en 17 seconden actief is.

Problemen oplossen met Linux-systeemprestaties
Als uw systeem niet werkt zoals het zou moeten, bijvoorbeeld als het ongewoon traag is, kunt u als volgt enkele systeemdiagnoses uitvoeren.
26. Zoek de meest actieve 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 toepassingen of een proces dat veel CPU-tijd verbruikt te beëindigen.
Zoek eerst de PID van het niet-reagerende proces of de toepassing.
$ ps -A | grep -i stress
Gebruik vervolgens het kill-commando om het onmiddellijk te beëindigen.
$ kill -9 2583 2584

Beveiligingsinformatie weergeven
28. Toon beveiligingscontext (specifiek voor SELinux) op deze manier.
$ ps -eM OR $ ps --context

29. Je kunt ook beveiligingsinformatie weergeven in een door de gebruiker gedefinieerd formaat met dit commando.
$ ps -eo euser,ruser,suser,fuser,f,comm,label

Voer Real-time procesbewaking uit met behulp van het Watch-hulpprogramma
30. Ten slotte, aangezien ps statische informatie weergeeft, kun je het watch-hulpprogramma gebruiken om real-time procesbewaking uit te voeren met herhaalde uitvoer, weergegeven na elke seconde zoals in het onderstaande commando (specificeer een aangepast ps commando om je doel te bereiken).
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

Belangrijk: ps toont alleen statische informatie, om frequent bijgewerkte uitvoer te bekijken kun je tools zoals htop; top, en glances gebruiken: de laatste twee zijn in feite Linux systeemprestatiebewakingstools.
Je zou ook de volgende gerelateerde artikelen willen lezen.
- Hoe je een procesnaam kunt vinden met behulp van het PID-nummer in Linux
- Vind Top Running Processes door hoogste geheugen- en CPU-gebruik in Linux
- A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
- Hoe u lopende processen kunt vinden en beëindigen in Linux
- Hoe u een Linux-opdracht kunt starten in de achtergrond en het proces kunt loskoppelen in de terminal
Dat is alles voor nu. Als u een nuttig voorbeeld(en) van het ps commando wilt delen (zonder te vergeten uit te leggen wat het doet), gebruik dan het opmerkingenveld hieronder.
Source:
https://www.tecmint.com/ps-command-examples-for-linux-process-monitoring/