50% korting alle plannen, beperkte tijd. Beginnend om $2.48/mo
Nog 10 minuten
Servers en besturingssystemen

Procesbeheer beheersen – Linux ps aux Command

Ada Lovegood By Ada Lovegood 10 minuten lezen Bijgewerkt op 11 juli 2024
Linux ps aux-opdracht

Heeft u minstens vijf andere tabbladen geopend in uw browser, in een poging het antwoord te vinden op een Linux-probleem dat u bent tegengekomen?
Dit gedrag is niet specifiek voor u of voor mensen in het algemeen. Machines multitasken ook. En net als jij is Linux ook een multitasker en zijn er meerdere processen tegelijkertijd gaande. Of u nu een ontwikkelaar bent die Linux professioneel gebruikt, of een normale gebruiker die met Linux werkt voor uw dagelijkse activiteiten, u zou deze parallelle processen moeten kunnen begrijpen om de volledige controle over uw systeem te behouden. Procesbeheer en systeemcontrole zijn essentiële aspecten van het runnen van een Linux-systeem.

Om de processen die op het systeem draaien efficiënt te beheren, om in realtime te zien wat er gebeurt, om een ​​algemeen beeld te krijgen van alle achtergrondprocessen en om systeembronnen te controleren, hebt u technische kennis van procesbeheer nodig. Het ps aux-commando is een krachtig commando dat een cruciale rol speelt bij procesbeheer en systeemcontrole. In dit bericht leren we meer over de opdracht ps aux en de gebruiksscenario's ervan. We behandelen ook de basisprincipes van hoe Linux-processen werken.

Procesbeheer in Linux begrijpen

Wanneer we met Linux werken, vinden de meeste van onze interacties met het systeem plaats in de vorm van opdrachten. In Linux is een proces de uitvoering van een commando. Linux-procesbeheer omvat het manipuleren van de processen die door een opdracht zijn gestart. U kunt een proces beëindigen, een proces starten of de processen hervatten die zijn beëindigd. U kunt ook lopende opdrachten manipuleren.

Er zijn twee soorten Linux-processen:

  • Voorgrondprocessen
  • Achtergrondprocessen

Linux-voorgrondprocessen

Een voorgrondproces is een proces dat actief wordt uitgevoerd en doorgaans constante en realtime interactie met de gebruiker vereist. Wanneer een voorgrondproces in actie is, wordt de uitvoering van andere processen gepauzeerd. U kunt dus geen andere opdrachten uitvoeren. Een voorgrondproces ontvangt invoer van het toetsenbord als standaardinvoer of stdin. Om verdere verwarring te voorkomen, zijn stdin en stdout Linux-gegevensstromen samen met stderr. Het is eigenlijk hoe de gebruiker met het proces omgaat en er gegevens voor verstrekt. Er is standaarduitvoer of stdout die door het proces wordt geproduceerd op basis van de functionaliteit en de invoer. Voorgrondprocessen zijn de standaarduitvoeringsmodus in Linux.

Linux-achtergrondprocessen

Achtergrondprocessen zijn precies het tegenovergestelde van voorgrondprocessen, omdat ze geen gebruikersinteractie vereisen en niet uitsluitend de volledige ruimte van de terminal innemen, waardoor de uitvoering van andere processen mogelijk is. Het type invoer en uitvoer van achtergrondprocessen is ook verschillend. Normaal gesproken nemen ze geen stdin. De resultaten van het proces kunnen echter als stdout worden weergegeven. Het weergeven van de uitvoer van achtergrondprocessen gebeurt gelijktijdig met de uitvoer van andere voorgrondprocessen. U kunt dus de voortgang of de resultaten van het achtergrondproces zien zonder andere belangrijke acties te onderbreken.

Omdat het uitvoeren van een breed scala aan taken in Linux afhankelijk is van de opdrachtregel, kunnen processen op de voorgrond lastig zijn, terwijl het uitvoeren van processen op de achtergrond uw terminal bevrijdt van het werken aan andere taken. Het is dus redelijk om hier een voorgrondtaak op de achtergrond te plaatsen. Om te een proces naar de achtergrond sturen je moet eerst voorkomen dat het op de voorgrond wordt uitgevoerd. Dit doet u eenvoudig door op CTRL+Z te drukken. Door vervolgens de opdracht bg te typen, wordt het beëindigde proces opnieuw op de achtergrond uitgevoerd. Het fg-commando zal het proces omkeren en naar de voorgrond brengen.

Processtatus; Syntaxis, opdrachten en interpretatie van de uitvoer

Effectief procesbeheer in Linux vereist inzicht in de status van processen die kunnen worden gecontroleerd met de opdracht ps aux. Maar voordat we dieper ingaan op de opdracht ps aux, laten we eerst eens kijken naar de verschillende processtatussen. Hoewel er verschillende soorten processen en processtatussen zijn, vindt u hier een tabel met de meest voorkomende:

Processtatus beschrijving
Hardlopen(R) Het proces is momenteel actief en neemt CPU-bronnen in beslag.
Slapen Onderbreekbaar (S) Het proces wacht tot een specifieke invoer of gebeurtenis opnieuw wordt uitgevoerd. Het gebruikt momenteel geen CPU-bronnen. Wanneer er middelen beschikbaar zijn, of er signalen worden gegeven, begint het proces opnieuw.
Ononderbroken (D) Net als een proces dat zich in een onderbreekbare slaapstand bevindt, gebruikt een ononderbroken slaapproces geen CPU-bronnen. Het enige verschil is dat het niet op signalen reageert, maar pas weer tot leven komt als er middelen beschikbaar zijn.
Gestopt(T) Een gebruikersinvoer of een specifieke gebeurtenis heeft het proces gepauzeerd. Een proces in de gestopte status gebruikt geen CPU-bronnen.
Dood(X) Het proces is beëindigd en bestaat niet meer.

Een goed begrip van deze processtatussen is een cruciaal aspect voor het effectief beheren en oplossen van problemen met Linux-systemen. Laten we nu de syntaxis en opdrachten voor het verkrijgen van de processtatus in Linux bespreken, evenals hoe de uitvoer moet worden geïnterpreteerd.

Syntaxis en opdrachten voor het verkrijgen van processtatus

Je kunt de processtatus in Linux opvragen met de basissyntaxis voor het ps-commando:

ps [process name]

Er zijn ook andere opties die worden gebruikt met de opdracht ps:

hulp: Deze optie toont een uitgebreide lijst van alle processen die op het systeem draaien. Het biedt informatie zoals proces-ID's (PID's), ouderproces-ID's (PPID's), CPU- en geheugengebruik en processtatussen. De uitvoer van het ps aux-commando is veel netter, beter leesbaar en bevat veel meer nuttige informatie dan het standaard ps-commando.

ef: Deze optie toont een volledige lijst met processen met extra details, inclusief de proceshiërarchie als een boomachtige structuur.

l: Deze optie biedt een lange lijstindeling, waarin meer gedetailleerde informatie over processen wordt gepresenteerd.

De uitvoer begrijpen

Wanneer u de opdracht ps met de gewenste opties uitvoert, genereert deze een uitvoer die de processen vertegenwoordigt die momenteel op uw systeem worden uitgevoerd. De uitvoer bestaat uit kolommen die verschillende proceskenmerken tonen, waaronder de proces-ID (PID), de bovenliggende proces-ID (PPID), CPU-gebruik, geheugengebruik, processtatus, terminaltype en opdrachtnaam.

Hier volgt een uitleg van wat elk van deze kolommen betekent:

PID: Deze kolom toont de unieke ID van het proces.

TTY: In deze kolom wordt weergegeven op welk type terminal de gebruiker heeft ingelogd.

TIJD: Deze kolom geeft aan hoeveel CPU er in minuten en seconden door dit proces wordt verbruikt.

CMD: Deze kolom vertegenwoordigt de naam van de opdracht waarmee dit proces is gestart.

Door de informatie van het ps-commando te analyseren, krijgt u een dieper inzicht in het gedrag van uw Linux-machine.

Geavanceerde ps-technieken voor procesbeheer met het ps-commando

Laten we enkele van de geavanceerde functies van het ps-commando onderzoeken en hoe deze effectief kunnen worden gebruikt:

1. Processortering

Het ps aux-commando kan worden gebruikt om de uiteindelijke uitvoer te sorteren op basis van verschillende kolommen. U kunt processen bijvoorbeeld sorteren op proces-ID of CPU-gebruik om ze in de gewenste volgorde te bekijken.

Hier is een voorbeeld van sorteerprocessen op basis van proces-ID met behulp van ps aux:

ps aux –-sort pid

Het hoofdcommando wordt gebruikt om alleen de eerste vijf rijen van de uitvoer op te halen.

ps aux sort pid

2. Visualisatie van de procesboom

Als u de ouder-kindrelatie van processen duidelijk wilt zien, kunt u de opdracht ps gebruiken met de forest-optie.

ps -aux --forest

ouder-kindrelatie van Linux-processen

Om de relatie tussen processen in een boomachtig patroon te zien, kunt u ook de opdracht pstree gebruiken. Deze opdracht creëert een uitvoer die begrijpelijker is en die de hiërarchie tussen processen perfect illustreert. Om deze opdracht te gebruiken, typt u de volgende opdracht:

pstree [pid or username]

Door dit commando een PID te geven, vertel je het commando dat het proces als de wortel van de boom moet worden beschouwd.

3. Filterprocessen

Stel je voor dat je met een specifieke groep processen wilt werken; U wilt bijvoorbeeld alle processen van een van de gebruikers vermelden. Het filteren van processen op basis van een kenmerk kan worden gedaan met behulp van de opdracht ps. In dit voorbeeld hebben we de processen gefilterd op basis van gebruikersnaam.

ps -u [username]

Linux-processen filteren met behulp van de opdracht ps

En het ps aux grep-commando kan de processen filteren op basis van elk patroon of trefwoord dat u aan het commando opgeeft. Bekijk de onderstaande code als voorbeeld:

ps aux grep-opdrachtvoorbeeld

Dit commando somt eerst alle processen op en geeft de uitvoer door aan het grep-commando om die lange lijst te filteren op basis van proces-ID. In de afbeelding hierboven ziet u een lijst met alle processen die het nummer 15 in hun informatie hebben.

Voor meer informatie over het ps-commando en de mogelijkheden ervan kunt u de handleiding van dit commando lezen. Met de onderstaande code wordt de handleidingpagina voor u weergegeven:

man ps

Taakprioriteit beheren in Linux

Om beter uit te leggen hoe procesbeheer feitelijk werkt in Linux, moeten we ook de procesprioriteit bespreken en hoe deze te veranderen. Stel je een situatie voor waarin je meerdere processen uitvoert en de CPU overbelast raakt met taken. Als u uw bronnen wilt beheren zodat ze in deze situatie goed kunnen werken, moet u de prioriteit van de actieve taken wijzigen. Elk proces in Linux heeft een prioriteitswaarde. Deze waarde helpt de kernel om taken te prioriteren. Het prioriteitsnummer varieert van -20 tot 19, waarbij 19 de minst belangrijke taak is en -20 de meest urgente taak. Het proces met de hoogste prioriteit krijgt meer CPU-tijd vergeleken met andere processen. De prioriteitswaarden worden vaak “mooie” waarden genoemd, waarbij lagere mooie waarden een hogere prioriteit hebben.

U kunt de opdrachten nice en renice gebruiken om systeembronnen efficiënt toe te wijzen.

Maar voordat we de prioriteit van processen veranderen, gaan we eerst het eerste gebruiksscenario van het ps-commando onderzoeken.

  • De huidige prioriteit van alle processen weergeven met behulp van de ps-opdracht:

Deze opdracht vermeldt alle processen samen met hun proces-ID's (PID), opdrachtnamen en de huidige prioriteit (mooie waarde):

 

ps -eo pid,cmd,nice

De prioriteit van alle processen verkrijgen met behulp van de opdracht ps

  • Een proces starten met een standaard hoge prioriteit met behulp van de opdracht nice:

Met deze opdracht kunt u een proces starten met de prioriteit van uw voorkeur:

nice -n [priority] [command]

Vervang [prioriteit] door de gewenste negatieve waarde die het prioriteitsniveau vertegenwoordigt en [opdracht] door de opdracht die u wilt uitvoeren.

Hier is een voorbeeld:

een proces starten met standaard hoge prioriteit

  • De prioriteit van een reeds uitgevoerd commando wijzigen:
renice -n [priority] -p [PID]

Vervang de proces-ID van het proces dat u wilt manipuleren door [PID].

Als je een krachtige Linux-machine wilt hebben waarop je allerlei taken kunt uitvoeren, a Linux-VPS is voor u de beste oplossing. Cloudzy biedt verschillende Linux VPS-abonnementen met de door u gewenste distro vooraf geïnstalleerd. Met veel voordelige kenmerken zoals 24/7 ondersteuning, een 30 dagen geld-terug-beleid en een uptime-garantie van 99,95% is Cloudzy erin geslaagd de prijzen laag te houden. Onze prijzen voor Linux VPS beginnen bij slechts $ 4,95/maand.

Linux VPS-hosting

Koop een goedkope of premium Linux VPS voor het hosten van uw website of externe desktop, tegen de goedkoopste prijs die er is. VPS Draait op Linux KVM voor meer efficiëntie en werkt op krachtige hardware met NVMe SSD-opslag voor hogere snelheid.

Lees meer

Conclusie

Concluderend: het beheersen van procesbeheer en systeemcontrole is een must voor systeembeheerders, Linux-enthousiastelingen die graag meer willen leren, en gewone Linux-gebruikers. Leren over de mogelijkheden en functionaliteiten van de opdracht ps kan uw weg vergemakkelijken in het leren van procesbeheer. Daarom besprak dit artikel belangrijke gebruiksscenario's van het ps-commando en gaf het lezers een inleiding tot Linux-processen.

Veelgestelde vragen

Wat is de ps aux-opdracht in Linux?

Het ps aux Linux-commando is een veelgebruikt commando in Linux voor het verkrijgen van informatie over lopende processen. Het kan een uitgebreide lijst met processen bieden in een gebruiksvriendelijk formaat, inclusief hun proces-ID's (PID's), CPU- en geheugengebruik, uitvoeringsstatussen en andere essentiële details.

Wat zijn twee soorten processen in Linux?

Voorgrondprocessen en achtergrondprocessen. Voorgrondprocessen bezetten de terminal terwijl ze actief zijn en laten geen andere uitvoeringen toe. Achtergrondprocessen worden op de achtergrond uitgevoerd en nemen niet de hele terminal in beslag.

Hoe kan ik de lijst met processen bekijken die op mijn Linux-systeem worden uitgevoerd?

De lijst met processen die op uw Linux-systeem worden uitgevoerd, kan worden verkregen met behulp van opdrachten als ps, top of htop om te bekijken. De Linux ps aux-opdracht biedt bijvoorbeeld gedetailleerde informatie over alle actieve processen.

Deel

Meer van de blog

Blijf lezen.

De beste zelfgehoste apps die u kunt uitvoeren met Cosmos Cloud-omslagafbeelding met app-panelen rond een Cosmos-dashboard.
Servers en besturingssystemen

Beste zelfgehoste apps die u kunt uitvoeren met Cosmos Cloud: bestanden, media, wachtwoorden, automatisering en meer!

Misschien heb je Cosmos Cloud opgezet en wil je nu kijken welke apps er goed bij passen, of misschien heb je nog niet eens voor Cosmos gekozen en wil je gewoon kijken hoe goed het bij je werk past.

Niek ZilverNiek Zilver 16 minuten lezen
Potainer vs Cosmos Cloud voor het beheren van Docker Apps-omslag met hybride installatiediagram en neon-ops versus toegangsblokken.
Servers en besturingssystemen

Portainer versus Cosmos Cloud: het beste geschikt voor Docker-appbeheer

Als je Docker al kent en gewoon een schonere manier wilt om een ​​groeiende app-stack uit te voeren, dan is hier het korte antwoord op Potainer versus Cosmos Cloud. Potainer is de sterkere keuze voor direc

Niek ZilverNiek Zilver 14 minuten lezen
Cosmos Cloud vs CasaOS vs Umbrel functieafbeelding die drie zelf-gehoste paden binnen één abstracte cloudnetwerkwereld laat zien.
Servers en besturingssystemen

Cosmos Cloud versus CasaOS versus Umbrel: welk zelfgehoste platform past bij uw configuratie?

Het korte antwoord is dat CasaOS nog steeds de gemakkelijkste plek is om te beginnen, Umbrel het schoonste samengestelde gevoel heeft en Cosmos Cloud logischer is als je meer controle over doma wilt.

Niek ZilverNiek Zilver 11 minuten lezen

Klaar om te implementeren? Vanaf $ 2,48/maand.

Onafhankelijke cloud, sinds 2008. AMD EPYC, NVMe, 40 Gbps. 14 dagen geld-terug-garantie.