Allt som körs på ett Linux-system, från ett användarprogram till en systemtjänst, är en egen process. Även om din dator sitter på en tom terminalskärm, finns det utan tvekan en massa processer som körs i bakgrunden. Det finns flera Linux-verktyg som vi kan använda för att identifiera alla processer i vårt system, och det här kommer vi att behandla i den här guiden.
Att veta hur man kontrollerar om processer som körs gör att du kan kontrollera om något körs, avsluta det vid behov och övervaka dess inverkan på systemets resurser (CPU och RAM).
Listningsprocesser med ps-kommandot
ps-kommandot kan lista alla processer som körs på ett Linux-system med alternativet -e.
ps -e
Det är normalt att ett system har ett stort antal processer som körs på när som helst, så det är lättare att söka igenom den här listan genom att leda kommandot till mer. Till exempel, se 15 rader åt gången:
ps -e | more -15
Utdata från ps visar oss varje process som körs, dess respektive process-ID (förkortat som PID) och TTY (terminalgränssnitt som processen körs på). Ett frågetecken i kolumnen TTY betyder att processen inte är ”t ansluten till vilken terminal som helst erface – den körs bara i bakgrunden.
Du kan behöva känna till PID för en process för att döda den, eller TTY så att du kan återgå till den öppna processen genom att återfoga till rätt terminalfönster.
Ett annat användbart alternativ med ps är alternativet -aux.
ps -aux
Liksom föregående alternativ kommer detta att lista varje process körs på ditt system. Men det listar också varje processs nuvarande CPU- och RAM-användning, liksom kommandot som skapade varje process.
Hitta en process med pgrep
pgrep-kommandosorten kombinerar ps och grep för oss. Vi kan ange namnet – eller en del av ett namn – på en process vi söker efter, och pgrep returnerar respektive process-ID.
Till exempel för att söka efter vilken SSH som helst relaterad process på ditt system, skulle du skriva:
pgrep ssh
Som visas i skärmdumpen ovan har pgrep hittat en SSH-process med en PID på 1143. För ytterligare verifiering, låt oss kontrollera med ps-kommandot:
ps -e | grep 1143
Visa körprocesser med topp
Det översta verktyget är naturligtvis ett kommandoradsverktyg, men det ger en interaktiv utgång av alla processer som för närvarande körs och visar informationen som du förväntar dig att se i ett grafiskt gränssnitt. Det är lätt att komma igång, skriv bara topp:
top
Utgången från toppen ger oss wi mycket information, inklusive den totala CPU- och RAM-användningen på vårt system. Men vi är här för listan över processer, som du hittar direkt nedanför.
Terminalfönstret är helt enkelt inte tillräckligt stort för att låta topplista varje löpande process, så topp visar så många som det kan och beställer dem efter systemresursanvändning. Med andra ord, de processer som använder mest CPU och RAM kommer att listas högst upp. Mindre krävande processer kommer att visas lägre i listan, eventuellt avstängd från terminalfönstret.
Använd piltangenterna på tangentbordet för att bläddra upp och ner genom processlistan.
Det finns en hel del information angående varje körningsprocess. Här är en snabb översikt över vad dessa olika kolumner betyder:
- PID: Process-ID för varje uppgift.
- PR: Schemaläggningsprioriteten för en uppgift.
- NI: Det fina värdet av en uppgift. Negativa siffror indikerar högre prioritet.
- VIRT: Mängden virtuellt minne som används.
- RES: Mängden inbyggt minne används.
- SHR: Mängden delat minne som används.
- S: Status för en uppgift (R = igång, S = sovande).
- % CPU: Aktuell CPU-procentsats som används av en uppgift.
- % MEM: Aktuell RAM-procentsats som används av en uppgift.
- TIME +: CPU-tiden för en uppgift.
- KOMMANDO: Kommandot som används för att leka uppgiften.
Som nämnts är toppen interaktiv, så vi kan använda några kortkommandon för att göra några snygga saker med det. Vi ” Gå igenom några av de mer praktiska nedan.
Tryck på z-tangenten för att köra processer i färgkod. Detta gör det lättare att skilja löpande uppgifter från sov- eller zombieprocesser.
Tryck på c-tangenten för att få det fullständiga kommandot som används för varje uppgift. Detta visar den absoluta sökvägen, tillsammans med alla alternativ som används.
Tryck på k-tangenten för att döda en pågående process, direkt från det översta verktyget. Detta sparar lite tid från att behöva lämna verktyget och utfärda ett separat dödkommando. Du behöver bara skriva in PID för den process du vill avsluta:
Tryck på r-tangenten för att ändra prioriteten för en process med renice. Ange PID för processen du vill avstå från:
För fler alternativ, tryck på h (hjälp) för att se allt annat som toppen kan göra.
När du är klar med att använda det översta verktyget kan du lämna verktyget och återgå till terminalen genom att trycka på q.
Visa körningsprocesser med htop
htop-verktyget bygger på toppen och är lite mer användarvänligt och roligare att titta på. Den enda nackdelen är att den inte är installerad på alla Linux-distributioner som standard, så du kan behöva installera den först. Det borde finnas i ditt operativsystems förråd, så här installerar du det med din pakethanterare:
Debian och Ubuntu:
sudo apt-get install htop
CentOS och Fedora:
dnf install htop
Red Hat:
yum install htop
När du är installerad skriver du bara htop för att köra verktyget.
htop
Du kan använda musen för att interagera med htop, och de olika tangentbordskommandona listas längst ner i terminalfönstret. Den fungerar mest på samma sätt som topp, men med ett renare gränssnitt som är lättare att förstå.
Slutsats
I den här guiden har vi visat några olika metoder för att visa de pågående processerna på ett Linux-system. Vilken du använder beror på situationen och din personliga preferens, men varje metod har sina egna fördelar.