In Linux wordt een actieve instantie van een programma een proces genoemd. Af en toe, als je op een Linux-machine werkt, moet je misschien weten welke processen momenteel worden uitgevoerd.
Er zijn een aantal commando’s die je kunt gebruiken om informatie te vinden over de actieve processen, met ps
, pstree
, en top
zijn de meest gebruikte.
Dit artikel legt uit hoe je het ps
commando gebruikt om de momenteel lopende processen weer te geven en informatie over die processen weer te geven.
Hoe ps Command # te gebruiken
De algemene syntaxis voor het ps
commando is als volgt:
Om historische en compatibiliteitsredenen accepteert het ps
commando verschillende soorten opties:
- UNIX-stijlopties, voorafgegaan door een enkel streepje.
- BSD-stijlopties, gebruikt zonder een streepje.
- GNU lange opties, voorafgegaan door twee streepjes.
Verschillende optietypes ca n gemengd zijn, maar in sommige specifieke gevallen kunnen conflicten optreden, dus het is het beste om vast te houden aan één type optie.
BSD- en UNIX-opties kunnen worden gegroepeerd.
In zijn eenvoudigste formulier, indien gebruikt zonder enige optie, ps
zal vier kolommen met informatie afdrukken voor minimaal twee processen die in de huidige shell worden uitgevoerd, de shell zelf en de processen die in de shell worden uitgevoerd wanneer de commando is aangeroepen.
De uitvoer bevat informatie over de shell (bash
) en het proces dat hierin wordt uitgevoerd shell (ps
, het commando dat je hebt getypt):
De vier kolommen zijn gelabeld PID
, TTY
, TIME
, en CMD
.
-
PID
– De proces-ID. Gewoonlijk is bij het uitvoeren van hetps
commando de belangrijkste informatie waarnaar de gebruiker op zoek is de proces-PID. Als u de PID kent, kunt u een defect proces beëindigen. -
TTY
– De naam van de controlerende terminal voor het proces. -
TIME
– De cumulatieve CPU-tijd van het proces, weergegeven in minuten en seconden. -
CMD
– De naam van de opdracht dat werd gebruikt om het proces te starten.
De uitvoer hierboven is niet erg nuttig omdat het niet veel informatie bevat. De echte kracht van het ps
commando komt wanneer het wordt gestart met extra opties.
Het ps
commando accepteert een groot aantal van opties die kunnen worden gebruikt om een specifieke groep processen en verschillende informatie over het proces weer te geven, maar slechts een handvol zijn nodig voor dagelijks gebruik.
ps
wordt het vaakst gebruikt met de volgende combinatie van opties:
BSD-formulier:
- Het
a
optie verteltps
om de processen van alle gebruikers weer te geven. Alleen de processen die niet aan een terminal zijn gekoppeld en processen van groepsleiders worden niet getoond. -
u
staat voor een gebruikersgericht formaat dat gedetailleerde informatie geeft over de processen. - De
x
optie instrueertps
om de processen op te sommen zonder een controlerende terminal. Dit zijn voornamelijk processen die tijdens het opstarten worden gestart en op de achtergrond worden uitgevoerd.
De opdracht geeft informatie weer in elf kolommen met het label USER
, PID
, %CPU
, %MEM
, VSZ
, RSS
, STAT
, START
, TTY
, TIME
, en CMD
.
We hebben PID
, TTY
, TIME
en CMD
labels. Hier is een uitleg van andere labels:
-
USER
– De gebruiker die het proces uitvoert. -
%CPU
– Het cpu-gebruik van het proces. -
%MEM
– Het percentage van de residente ingestelde grootte van het proces ten opzichte van het fysieke geheugen op de machine . -
VSZ
– Virtuele geheugengrootte van het proces in KiB. -
RSS
– De grootte van het fysieke geheugen dat het proces gebruikt. -
STAT
– De processtatuscode, zoalsZ
(zombie),S
(slapend) enR
(actief). -
START
– De tijd waarop het commando begon.
De f
optie vertelt ps
om een boomstructuur van ouder-naar-kindprocessen weer te geven:
Met het ps
commando kun je ook de uitvoer sorteren. Als u bijvoorbeeld de uitvoer wilt sorteren op basis van het geheugengebruik, gebruikt u:
UNIX-formulier:
- De
-e
optie instrueertps
om alle processen weer te geven. - De
-f
staat voor volledige lijst, die gedetailleerde informatie over de processen geeft.
De opdracht geeft informatie weer in acht kolommen met het label UID
, PID
, PPID
, C
, STIME
, TIME
, en CMD
.
De labels die nog niet zijn uitgelegd, hebben de volgende betekenis:
-
UID
– Hetzelfde alsUSER
, de gebruiker die het proces uitvoert. -
PPID
– De ID van het bovenliggende proces. -
C
– Sam e als%CPU
, het CPU-gebruik van het proces. -
STIME
– Zelfde alsSTART
, het tijdstip waarop het commando is gestart.
Om alleen de processen te zien die als een specifieke gebruiker worden uitgevoerd, typt u het volgende commando, waarbij linuxize
is de naam van de gebruiker:
Door gebruiker gedefinieerd formaat #
De o
kunt u specificeren welke kolommen worden weergegeven bij het uitvoeren van het ps
commando.
Om bijvoorbeeld alleen informatie af te drukken over de PID
en COMMAND
, zou u een van de volgende opdrachten uitvoeren:
ps gebruiken met andere opdrachten #
ps
kan worden gebruikt in combinatie met andere opdrachten via piping.
Als je de uitvoer van het ps
commando pagina voor pagina wilt weergeven e stuur het door naar het less
commando:
De uitvoer van de ps
commando kan worden gefilterd met grep
. Als u bijvoorbeeld alleen het proces van de rootgebruiker wilt weergeven, voert u het volgende uit:
Conclusie #
De ps
commando is een van de meest gebruikte commando’s bij het oplossen van problemen op Linux-systemen. Het heeft veel opties, maar gewoonlijk gebruiken de meeste gebruikers ps aux
of ps -ef
om informatie te verzamelen over actieve processen.
Voor meer informatie over ps
, typ man ps
in je terminal.