30 Handige’ ps Command’-voorbeelden voor Linux Process Monitoring
ps (processtatus) is een native Unix / Linux-hulpprogramma voor het bekijken van informatie over een selectie van lopende processen op een systeem: het leest deze informatie uit de virtuele bestanden in / proc bestandssysteem. Het is een van de belangrijke hulpprogramma’s voor systeembeheer, specifiek onder procesbewaking, om u te helpen begrijpen wat er aan de hand is op een Linux-systeem.
Het heeft talloze opties om de uitvoer te manipuleren, maar u zult een kleine aantal praktisch bruikbaar voor dagelijks gebruik.
Lees ook: alles wat u moet weten over processen in Linux
In dit artikel zullen we 30 nuttige voorbeelden van ps-opdrachten bekijken voor het bewaken 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 vertegenwoordigt, je kunt de betekenis van alle labels in de ps man vinden pagina.
Lijst met alle processen in huidige shell
1. Als je het ps-commando zonder argumenten uitvoert, worden de processen voor de huidige shell weergegeven.
$ ps
Druk alle processen af in verschillende formaten
2. Geef elk actief proces op een Linux-systeem weer in algemene (Unix / Linux) indeling.
$ ps -AOR$ ps -e
3. Geef alle processen weer in BSD-indeling.
$ ps auOR$ ps axu
4. Om een volledige lijst te maken, voegt u de vlag -f
of -F
toe.
$ ps -efOR$ ps -eF
Door gebruiker lopende processen weergeven
5. U kunt alle processen selecteren die uw eigendom zijn (runner van het ps-commando, root in dit geval), typ:
$ ps -x
6. Gebruik de -U
vlag om de processen van een gebruiker op echte gebruikers-ID (RUID) of naam weer te geven.
$ ps -fU tecmintOR$ ps -fu 1000
7. Gebruik de optie -u
om de processen van een gebruiker te selecteren op effectieve gebruikers-ID (EUID) of naam.
$ ps -fu tecmintOR$ ps -fu 1000
Druk alle processen af die als root worden uitgevoerd (echte en effecitve ID)
8. Met de onderstaande opdracht kunt u elk proces dat wordt uitgevoerd met rootgebruikersrechten (echte & effectieve ID) in gebruikersindeling bekijken.
$ ps -U root -u root
Groepsprocessen weergeven
9. Als je alle processen wilt weergeven die eigendom zijn van een bepaalde groep (echte groeps-ID (RGID) of naam), typ je.
$ ps -fG apacheOR$ ps -fG 48
10. Om alle processen weer te geven die eigendom zijn van de effectieve groepsnaam (of sessie), typ je.
$ ps -fg apache
Geef processen weer op PID en PPID
11. U kunt als volgt processen op PID weergeven.
$ ps -fp 1178
12. Om proces op PPID te selecteren, typ je.
$ ps -f --ppid 1154
13. Maak een selectie met de PID-lijst.
$ ps -fp 2226,1154,1146
Geef processen weer op TTY
14. Gebruik de vlag -t om processen op tty te selecteren.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Processtructuur afdrukken
15. Een procesboom laat zien hoe processen op het systeem aan elkaar zijn gekoppeld; processen waarvan de ouders zijn vermoord, worden geadopteerd door de init (of systemd).
$ ps -e --forest
16. U kunt ook een procesboom afdrukken voor een bepaald proces als dit.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Procesthreads afdrukken
17. Om alle threads van een proces af te drukken, gebruik je de -H
vlag, dit zal de LWP (lichtgewicht proces) en NLWP (aantal lichtgewicht proces) kolommen tonen.
$ ps -fL -C httpd
Specifieer aangepast uitvoerformaat
Met behulp van de -o of –format-opties, stelt ps u in staat om door de gebruiker gedefinieerde uitvoerformaten te bouwen, zoals hieronder getoond.
18. Om alle formaatspecificaties weer te geven, neemt u de vlag L
op.
$ ps L
19. Met de onderstaande opdracht 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 met de bestandssysteemgroep, mooie waarde, starttijd en verstreken tijd van een proces.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Om een procesnaam te vinden met behulp van zijn PID.
$ ps -p 1154 -o comm=
Toon ouder- en kindprocessen
22. Gebruik de vlag -C om een specifiek proces met zijn naam te selecteren, dit zal ook alle onderliggende processen weergeven.
$ 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 standaard 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 output laat zien dat de HTTPD-service al 1 uur, 48 minuten en 17 seconden actief is.
Problemen oplossen Linux-systeemprestaties
Als uw systeem niet werkt zoals het zou moeten zijn, bijvoorbeeld als het buitengewoon traag is, kunt u als volgt een aantal systeemproblemen oplossen.
26. Vind de meest actieve processen op basis van het hoogste geheugen- en CPU-gebruik in Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Om een Linux-proces / niet-reagerende applicaties of elk proces dat veel CPU-tijd verbruikt te beëindigen.
Zoek eerst de PID van het niet-reagerende proces of 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) op deze manier.
$ ps -eMOR$ ps --context
29. U kunt met deze opdracht ook beveiligingsinformatie weergeven in een door de gebruiker gedefinieerde indeling.
$ ps -eo euser,ruser,suser,fuser,f,comm,label
Voer real-time procesbewaking uit met behulp van Watch Utility
30. Ten slotte, aangezien ps statische informatie weergeeft, kunt u het watch-hulpprogramma gebruiken om real-time procesbewaking uit te voeren met repetitieve uitvoer, weergegeven na elke seconde zoals in het onderstaande commando (specificeer een aangepast ps-commando 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, kunt u tools gebruiken zoals htop; top en blikken: de laatste twee zijn in feite een Linux systeem prestatie monitoring tool.
Misschien wil je ook deze volgende gerelateerde artikelen lezen.
- Hoe u een procesnaam kunt vinden met behulp van een PID-nummer in Linux
- Vind de meest actieve processen op basis van het hoogste geheugen- en CPU-gebruik in Linux
- Een gids voor Kill, Pkill en Killall-commando’s om een proces in Linux te beëindigen
- Hoe actieve processen in Linux te vinden en te beëindigen
- Hoe Linux-commando’s op de achtergrond te starten en proces in Terminal los te koppelen