Heb je minstens vijf andere tabbladen open in je browser om het antwoord te vinden op een Linux-probleem waar je tegenaan loopt?
Dit gedrag is niet uniek voor jou of voor mensen in het algemeen. Machines kunnen ook multitasken. En net als jij is Linux ook een multitasker met meerdere processen die tegelijkertijd actief zijn. Of je nu een ontwikkelaar bent die Linux professioneel gebruikt, of een gewone gebruiker die Linux voor dagelijkse taken inzet, je moet deze parallelle processen begrijpen om volledige controle over je systeem te behouden. Procesbeheer en systeemcontrole zijn essentiële onderdelen van het beheren van een Linux-systeem.
Om processen op het systeem efficiënt te beheren, realtime inzicht te hebben in wat er gebeurt, een goed overzicht te houden van alle achtergrondprocessen en systeemresources te beheren, heb je technische kennis van procesbeheer nodig. Het ps aux-commando is een krachtig hulpmiddel dat een centrale rol speelt in procesbeheer en systeemcontrole. In dit artikel bespreken we het ps aux-commando en de toepassingen ervan. We behandelen ook de basisprincipes van hoe Linux-processen werken.
Procesbeheer in Linux begrijpen
Bij het werken met Linux verlopen de meeste interacties met het systeem via opdrachten. In Linux is een proces de uitvoering van een opdracht. Procesbeheer in Linux draait om het beheren van processen die door een opdracht zijn gestart. Je kunt een proces beëindigen, starten of hervarten na onderbreking. Je kunt ook lopende opdrachten aansturen.
Er zijn twee soorten Linux-processen:
- Processen op de voorgrond
- Achtergrondprocessen
Linux-voorgrondprocessen
Een voorgrondproces is een actief uitgevoerd proces dat doorgaans directe, realtime interactie met de gebruiker vereist. Zolang een voorgrondproces actief is, worden andere processen gepauzeerd. Je kunt dus geen andere opdrachten uitvoeren. Een voorgrondproces ontvangt invoer van het toetsenbord als standaardinvoer, ofwel stdin. Ter verduidelijking: stdin en stdout zijn Linux-gegevensstromen, net als stderr. Ze bepalen hoe de gebruiker met het proces communiceert en er gegevens aan levert. De standaarduitvoer, ofwel stdout, wordt door het proces gegenereerd op basis van zijn functionaliteit en de ontvangen invoer. Voorgrondprocessen zijn de standaard uitvoeringsmodus in Linux.
Linux-achtergrondprocessen
Achtergrondprocessen zijn het tegenovergestelde van voorgrondprocessen: ze vereisen geen gebruikersinteractie en nemen de terminal niet volledig in beslag, waardoor andere processen gewoon kunnen doorlopen. Ook de invoer en uitvoer werken anders. Achtergrondprocessen lezen doorgaans geen stdin. De resultaten kunnen wel als stdout worden weergegeven, gelijktijdig met de uitvoer van actieve voorgrondprocessen. Je kunt de voortgang of resultaten van een achtergrondproces dus volgen zonder andere werkzaamheden te onderbreken.
Omdat een groot aantal taken in Linux afhankelijk is van de opdrachtregel, kunnen voorgrondprocessen hinderlijk zijn. Door processen op de achtergrond te draaien, houd je de terminal vrij voor andere taken. Het is dan ook zinvol om een voorgrondtaak naar de achtergrond te verplaatsen. Om een proces naar de achtergrond te sturen stop je het eerst in de voorgrond door op CTRL+Z te drukken. Typ daarna het commando bg om het gestopte proces op de achtergrond verder te laten draaien. Het commando fg keert dit om en brengt het proces terug naar de voorgrond.
Processtatus: syntaxis, opdrachten en uitvoer interpreteren
Effectief procesbeheer in Linux vereist inzicht in de status van processen, die je kunt monitoren met het commando ps aux. Maar voordat we dieper ingaan op ps aux, bespreken we eerst de verschillende processtatussen. Er bestaan meerdere soorten processen en statussen. Hieronder vind je een overzicht van de meest voorkomende:
| Processtatus | beschrijving | |
| In werking (R) | Het proces wordt momenteel uitgevoerd en verbruikt CPU-resources. | |
| In slaapstand | Onderbreekbaar (S) | Het proces wacht op een specifieke invoer of gebeurtenis om verder te gaan. Op dit moment verbruikt het geen CPU-resources. Zodra resources beschikbaar zijn of een signaal wordt ontvangen, hervat het proces zijn uitvoering. |
| Ononderbroken (D) | Net als een onderbreekbare slaapstand verbruikt een niet-onderbreekbare slaapstand geen CPU-resources. Het verschil is dat dit proces niet reageert op signalen. Het hervat alleen wanneer de benodigde resources beschikbaar zijn. | |
| Gestopt (T) | Een gebruikersinvoer of een specifieke gebeurtenis heeft het proces gepauzeerd. Een gestopt proces verbruikt geen CPU-resources. | |
| Dood(X) | Het proces is beëindigd en bestaat niet meer. | |
Een goed begrip van deze processtatussen is essentieel voor het beheren en oplossen van problemen in Linux-systemen. Hierna bespreken we de syntaxis en opdrachten voor het opvragen van de processtatus in Linux, en hoe je de uitvoer interpreteert.
Syntaxis en opdrachten voor het opvragen van de processtatus
Je kunt de processtatus in Linux opvragen met de basissyntaxis van het ps-commando:
ps [process name]
Er zijn ook andere opties beschikbaar voor het ps-commando:
aan: Deze optie toont een volledig overzicht van alle processen die op het systeem draaien, inclusief process-ID's (PID's), parent process-ID's (PPID's), CPU- en geheugengebruik, en processtatussen. De uitvoer van ps aux is overzichtelijker, beter leesbaar en bevat meer bruikbare informatie dan het gewone ps-commando.
ef: Deze optie toont een uitgebreide proceslijst met extra details, waaronder de proceshiërarchie als boomstructuur.
l: Deze optie geeft een uitgebreid lijstformaat met meer gedetailleerde informatie over processen.
De uitvoer begrijpen
Wanneer je het ps-commando uitvoert met de gewenste opties, genereert het een uitvoer met alle processen die op dat moment op je systeem actief zijn. De uitvoer bestaat uit kolommen die verschillende proceskenmerken tonen, waaronder het process-ID (PID), het parent process-ID (PPID), CPU-gebruik, geheugengebruik, processtatus, terminaltype en opdrachtnaam.
Hier is een uitleg van wat elke kolom betekent:
PID: Deze kolom toont het unieke ID van het proces.
TTY: Deze kolom toont het type terminal waarop de gebruiker is ingelogd.
TIJD: Deze kolom geeft aan hoeveel CPU dit proces heeft verbruikt, in minuten en seconden.
CMD: Deze kolom toont de naam van het commando dat dit proces heeft gestart.
Door de informatie van het ps-commando te analyseren, krijg je een beter inzicht in het gedrag van je Linux-machine.
Geavanceerde ps-technieken voor procesbeheer met het ps-commando
Laten we een aantal geavanceerde mogelijkheden van het ps-commando bekijken en hoe je ze effectief kunt gebruiken:
1. Processortering
Met het ps aux-commando kun je de uitvoer sorteren op verschillende kolommen. Je kunt processen bijvoorbeeld sorteren op proces-ID of CPU-gebruik om ze in een gewenste volgorde te zien.
Hier is een voorbeeld van het sorteren van processen op proces-ID met ps aux:
ps aux –-sort pid
Het head-commando wordt gebruikt om alleen de eerste vijf rijen van de uitvoer op te halen.

2. Procesboombeheer
Als je de ouder-kind-relatie tussen processen duidelijk wilt zien, kun je het ps-commando gebruiken met de forest-optie.
ps -aux --forest

Om de relatie tussen processen als een boomstructuur te bekijken, kun je ook het pstree-commando gebruiken. Dit commando genereert een overzichtelijkere uitvoer en illustreert de hiërarchie tussen processen duidelijk. Typ het volgende commando om het te gebruiken:
pstree [pid or username]
Door dit commando een PID mee te geven, geef je aan dat het dat proces als de wortel van de boom moet beschouwen.
3. Filterprocedures
Stel dat je met een specifieke groep processen wilt werken, bijvoorbeeld alle processen van één gebruiker. Je kunt processen filteren op een bepaald kenmerk met het ps-commando. In dit voorbeeld hebben we processen gefilterd op gebruikersnaam.
ps -u [username]

Met het ps aux grep-commando kun je processen filteren op elk patroon of trefwoord dat je opgeeft. Bekijk de onderstaande code als voorbeeld:

Dit commando geeft eerst een lijst van alle processen en stuurt de uitvoer door naar het grep-commando om die lange lijst te filteren op proces-ID. In de afbeelding hierboven zie je een lijst van alle processen die het getal 15 in hun gegevens hebben.
Voor meer informatie over het ps-commando en de mogelijkheden ervan kun je de man-pagina van dit commando raadplegen. De onderstaande code toont de man-pagina:
man ps
Taakprioriteit beheren in Linux
Om beter uit te leggen hoe procesbeheer werkt in Linux, moeten we ook ingaan op procesprioriteit en hoe je die kunt aanpassen. Stel je voor dat je meerdere processen tegelijk uitvoert en de CPU overbelast is met taken. Om in die situatie je resources goed te beheren, moet je de prioriteit van de actieve taken aanpassen. Elk proces in Linux heeft een prioriteitswaarde. Deze waarde helpt de kernel om taken te prioriteren. De prioriteitswaarden lopen van -20 tot 19, waarbij 19 de laagste prioriteit heeft en -20 de hoogste. Het proces met de hoogste prioriteit krijgt meer CPU-tijd toebedeeld dan andere processen. Prioriteitswaarden worden vaak aangeduid als "nice"-waarden: een lagere nice-waarde betekent een hogere prioriteit.
Met de commando's nice en renice kun je systeembronnen efficiënt verdelen.
Maar voordat we de prioriteit van processen aanpassen, bekijken we eerst een praktisch voorbeeld van het ps-commando.
- De huidige prioriteit van alle processen weergeven met het ps-commando:
Dit commando toont alle processen met hun proces-ID's (PID), namen en de huidige prioriteit (nice-waarde):
ps -eo pid,cmd,nice

- Een proces starten met standaard hoge prioriteit via het nice-commando:
Je kunt een proces starten met je gewenste prioriteit via dit commando:
nice -n [priority] [command]
Vervang [priority] door de gewenste negatieve waarde voor het prioriteitsniveau en [command] door het commando dat je wilt uitvoeren.
I'm ready to translate to Dutch (Netherlands). Please provide the English text you'd like me to translate.

- De prioriteit van een al lopend commando aanpassen:
renice -n [priority] -p [PID]
Vervang [PID] door het proces-ID van het proces dat je wilt aanpassen.
Als je een krachtige Linux-machine wilt voor allerlei taken, is een Linux VPS de beste keuze voor jou. Cloudzy biedt diverse Linux VPS-pakketten aan met jouw voorkeursdistributie voorgeïnstalleerd. Met voordelen zoals 24/7 support, 30 dagen geld-terug-garantie en 99,95% uptime houdt Cloudzy de prijzen laag. Onze Linux VPS-pakketten beginnen al vanaf $4,95/maand.
Kies een economy of premium Linux VPS voor het hosten van je website of remote desktop, tegen de scherpste prijs. VPS draait op Linux KVM voor hogere efficiëntie en maakt gebruik van krachtige hardware met NVMe SSD-opslag voor maximale snelheid.
Meer lezenConclusie
Procesbeheer en systeemcontrole zijn onmisbare vaardigheden voor systeembeheerders, Linux-enthousiastelingen die meer willen leren, en gewone Linux-gebruikers. Inzicht krijgen in het ps-commando maakt het leren van procesbeheer een stuk toegankelijker. Daarom besprak dit artikel de belangrijkste toepassingen van het ps-commando en gaf het lezers een introductie tot Linux-processen.
Veelgestelde vragen
Wat doet het commando ps aux in Linux?
Het Linux-commando ps aux wordt veel gebruikt om informatie op te halen over actieve processen. Het geeft een overzichtelijke lijst van processen met hun proces-ID's (PIDs), CPU- en geheugengebruik, uitvoeringstatus en andere relevante gegevens.
Welke twee soorten processen zijn er in Linux?
Voorgrondprocessen en achtergrondprocessen. Voorgrondprocessen bezetten de terminal tijdens uitvoering en staan geen andere bewerkingen toe. Achtergrondprocessen draaien op de achtergrond en nemen de terminal niet volledig in beslag.
Hoe bekijk ik de lijst van actieve processen op mijn Linux-systeem?
Je kunt de actieve processen op je Linux-systeem bekijken met commando's als ps, top of htop. Het Linux-commando ps aux geeft bijvoorbeeld gedetailleerde informatie over alle actieve processen.