30 nuttige ‘ps-opdracht’ voorbeelden voor Linux-procesbewaking

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 
List Current Running Processes

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
List Processes in Standard Format

3. Toon alle processen in BSD-indeling.

$ ps au
OR
$ ps axu
List Processes in BSD Format

4. Om een volledige lijst opmaak uit te voeren, voeg de -f of -F vlag toe.

$ ps -ef
OR
$ ps -eF
List Processes in Long List Format

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
List User Processes by ID

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 
Display Root User Running Processes

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
Display Group Processes

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
List Processes by PID

12. Om proces te selecteren op basis van PPID, typ.

$ ps -f --ppid 1154
List Process by PPID

13. Maak een selectie met behulp van een PID lijst.

$ ps -fp 2226,1154,1146
List Processes by PIDs

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
List Processes by TTY

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 
List Process Tree

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 
List Tree View of Process

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
List Process Threads

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
List Processes with Names

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
List Process ID Information

21. Om een procesnaam te vinden aan de hand van zijn PID.

$ ps -p 1154 -o comm=
Find Process using PID

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
Find Parent-Child Process

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=
Find All Process PIDs

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.

Find Process Uptime

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
Find Top Running Processes

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
Find and Kill a Process

Beveiligingsinformatie weergeven

28. Toon beveiligingscontext (specifiek voor SELinux) op deze manier.

$ ps -eM
OR
$ ps --context
Find SELinux 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
List SELinux Context by Users

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'
Real-Time Process Monitoring

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.

  1. Hoe je een procesnaam kunt vinden met behulp van het PID-nummer in Linux
  2. Vind Top Running Processes door hoogste geheugen- en CPU-gebruik in Linux
  3. A Guide to Kill, Pkill, and Killall Commands to Terminate a Process in Linux
  4. Hoe u lopende processen kunt vinden en beëindigen in Linux
  5. 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/