Hur man Använder Kommandot ps att Övervaka Linux Processer

0
404
Fatmawati Achmad Zaenuri/Shutterstock

Få en bild av vilka processer som körs i din Linux-dator med kommandot ps. Hitta processer med namn, användarnamn, eller ens terminal med så mycket eller så lite detaljer som du behöver. Vi visar dig hur.

Process Management på Linux

Det pulserande hjärtat av alla Linux-och Unix-liknande operativsystem är kärnan. Bland dess många ansvarsområden är fördelning av resurser till exempel RAM-minne och CPU-tid. Dessa måste vara jonglerade i realtid så att alla processer som körs få sin beskärda del, enligt den prioritering av varje uppgift.

Ibland uppgifter som kan låsa upp, eller gå in i en kort slinga, eller svarar inte för andra skäl. Eller de kan fortsätta att köra, men sluka för mycket CPU-tid eller RAM-minne, eller beter sig på några lika anti-social sätt. Ibland uppgifter måste dödas som en nåd till alla inblandade. Det första steget. Naturligtvis, är att identifiera processen i fråga.

Men du kanske inte har någon uppgift eller problem med prestanda på alla. Kanske är du bara nyfiken på vilka processer som är igång i datorn, och som du skulle vilja kika under huven. Kommandot ps uppfyller båda dessa behov. Det ger dig en ögonblicksbild över vad det är som händer inuti datorn “just nu.”

ps är tillräckligt flexibel för att ge dig just den information du behöver i exakt det format som du skulle vilja det. I själva verket, ps har många alternativ. De alternativ som beskrivs här kommer att tillgodose de flesta vanliga behov. Om du behöver gå djupare in i ps än vi har tagit det i denna artikel, du kommer att upptäcka att vår introduktion gör man sidan lättare att smälta.

Lista Processer

Det enklaste sättet att använda ps är att skjuta upp det med några parametrar:

ps

ps visar en lista över de processer som startats av användaren som tog kommandot.

De fyra kolumnerna är:

  • PID: process-ID nummer av processen.
  • TTY: namnet på den konsol som användaren är inloggad på.
  • TID: hur mycket CPU tid som processen har använts.
  • CMD: namnet på kommandot som har inlett processen

Notering Process för Alla Användare

genom att lägga till -e (välj alla processer) kan vi göra ps lista på de processer som har startats av alla användare, inte bara de användare som kör kommandot ps. Eftersom detta kommer att bli en lång lista, vi är rykande det i mindre.

ps -e | mindre

Processen listan leds in mindre.

Vi har fått många fler poster i listan, men vi ser samma fyra kolumner som innan. Posterna med ett frågetecken ? i TTY-kolumnen var inte började från ett terminalfönster.

Visar Processen Hierarki

Ibland kan det hjälpa att räkna ut en fråga eller identifiera en viss process om kan du se vilka processer som inletts andra processer. Vi använda växeln-H (hierarki) möjlighet att göra det.

ps -eH | mindre

Indenteringen visar vilka processer som är föräldrar som andra processer.

För att lägga lite mer klarhet, kan vi be ps att lägga till några ASCII-linjer och för att dra den hierarki som ett träd. Alternativet att göra detta är –skogen alternativ.

ps-eH –skog | mindre

Detta gör det lättare att spåra vilka processer som är föräldrar till andra processer.

Lista Processer med Namn

Du kan pipe output från ps genom grep för att lista poster som har namn som matchar söktermen. Här tittar vi för poster som matchar “firefox” sökterm:

ps -e | grep firefox

I detta fall, produktionen är som en enda post för att den process som vi är intresserade av. Naturligtvis, om vi skulle lanserat flera instanser av Firefox, det skulle vara mer än ett objekt returneras i listan.

Visar Flera Kolumner i utskriften

För att lägga till fler kolumner i produktionen, använd-f (full-format) alternativ.

ps -ef | mindre

En extra uppsättning kolumner som ingår i den utgående från ps.

Kolumnerna är:

  • UID: användar-ID för ägaren av denna process.
  • PID: process-ID för den processen.
  • PPID: Förälder process-ID i processen.
  • C: antalet barn processen har.
  • STIME: Börja i tid. När processen inleds.
  • TTY: namnet på den konsol som användaren är inloggad på.
  • TID: hur mycket CPU tid som processen har använts.
  • CMD: namnet på kommandot som inlett processen.

Genom att använda-F (extra full-format) alternativ som vi kan få ännu fler kolumner:

ps -eF | mindre

Kolumnerna får vi denna gång kräver att skärmen scrolla i sidled för att visa dem alla.

Att trycka på “Höger Pil” – tangenten växlar skärmen till vänster.

De kolumner som vi nu får är:

  • UID: användar-ID för ägaren av denna process.
  • PID: process-ID för den processen.
  • PPID: Förälder process-ID i processen.
  • C: antalet barn processen har.
  • SZ: Storlek på RAM sidor av processen bilden.
  • RSS: Resident set storlek. Detta är den icke-bytte fysiskt minne som används av processen.
  • FSO: processorn att processen är kopplad till.
  • STIME: Börja i tid. När processen inleds.
  • TTY: namnet på den konsol som användaren är inloggad på.
  • TID: hur mycket CPU tid som processen har använts.
  • CMD: namnet på kommandot som inlett processen.

Lista Processer av Process-ID

När du har hittat den process-ID för den process som du är intresserad av, kan du använda det med ps-kommandot för att lista information på denna process. Använd-p (välj med process-ID) alternativ för att uppnå detta:

ps -p 3403

Detaljerna för denna process är listade:

Du är inte begränsad till ett process-ID. Du kan lämna en förteckning över process-Id, separerade med blanksteg.

Lista Processer med Kommandot

-C (command) alternativet kan du söka efter en process med hjälp av kommandot namn. Det är namnet på det kommando som inlett processen. Detta är subtilt olika från kommandoraden, som kan innehålla namn stig och parametrar eller val.

ps -C slutare

Detaljerna för slutaren process visas.

Lista Processer som Ägs av en Användare

För att se de processer som ägs av en viss användare, använd-u (användarlistan) alternativ:

ps -u maria

De processer som ägs av användaren konto mary visas.

Lista Processer genom Terminal

För att se de processer som är förknippade med en TTY, använd-t (välj från TEXTTELEFON) alternativ. Används utan en TTY-nummer,- t alternativet rapporter om processer som är förknippade med den nuvarande terminal-fönstret.

tty
ps -t

Tty kommandot rapporter om att detta är en pseudo-teletype 0. De processer som anges av ps -t är alla förknippade med TTY-poäng/0.

Om vi passerar en TTY-nummer på kommandoraden, vi ska få en rapport över de processer som är förknippade med att TTY.

ps -t 1

Den här gången processer är alla förknippade med TTY pts/1.

RELATERAT: Vad är en TTY på Linux? (och Hur man Använder en tty-Kommando)

Välja Kolumner som ska Visas

Med-o (format) du kan välja vilka kolumner som du vill ha med i utskriften från ps. Du anger kolumner med namn. Den (långa) listan över kolumnnamn som kan ses på man-sidan i avsnittet “Standard Format-Identifierare.” I detta exempel kan vi välja att ha den CPU-tid (pcpu) och kommandoraden med argument (args) som ingår i produktionen.

ps -e -o pcpu,args | mindre

Produktionen omfattar endast våra två begärt kolumner.

Sortering Produktionen av Kolumner

Du kan ha produktionen sorteras för dig genom att använda –sortera alternativ. Låt oss sortera ut av CPU-kolumn:

ps -e -o pcpu,args –sort-pcpu| mindre

Bindestreck “-” på pcpu sortera parameter ger en fallande sorteringsordning.

För att se de tio mest CPU-intensiva processer, spritsa ut genom huvudet kommando:

ps -e -o pcpu,args –sort-pcpu | head -10

Vi får en sorterad, trunkerade listan.

Om vi lägger till fler kolumner till vår monter, vi kan sortera genom att fler kolumner. Låt oss lägga till pmem kolumn. Detta är den del av datorns minne som används av processen. Utan bindestreck, eller med ett plustecken ” +”, sortera stigande.

ps -e -o pcpu,pmem,args –sort-pcpu,pmem | head -10

Vi får våra extra kolumn, och den nya kolumnen ingår i sorteringen. Den första kolumnen sorteras innan den andra kolumnen, och den andra kolumnen är sorterad i stigande ordning eftersom vi inte sätta ett bindestreck på pmem.

Låt oss göra det lite mer användbar och lägg i processen ID-kolumnen (pid) så att vi kan se processen nummer för varje process i vår lista.

ps -e -o pid,pcpu,pmem,args –sort-pcpu,pmem | head -10

Nu kan vi identifiera de processer.

Döda Processer av Process-ID

Vi har täckt en rad olika sätt att identifiera processer, inklusive namn, kommando, användare och terminal. Vi har också omfattas sätt att identifiera processer av deras dynamiska egenskaper, såsom CPU och minne.

Så, på ett eller annat sätt, kan vi identifiera de processer som körs. Genom att känna sin process-ID, kan vi (om vi vill) döda någon av dessa processer med kommandot kill. Om vi ville döda processen 898 vi skulle använda detta format:

sudo döda 898

Om allt går bra, processen är tyst avslutas.

RELATERAT: Hur man Dödar Processer Från Linux Terminal

Döda Processer med Namn

Den pkill kommandot tillåter dig att döda processer med namn. Se till att du har identifierat rätt process! Detta kommando kommer att avsluta upp processen.

sudo pkill toppen

Igen, inga nyheter är goda nyheter. Processen är tyst avslutas.

Döda Flera Processer med Namn

Om du har flera kopior av en process som körs, eller en process som har gett upphov till ett antal barn processer (till exempel Google Chrome kan göra), hur kan du döda dem? Det är bara så lätt. Vi använder kommandot killall.

Vi har två kopior av toppen att köra:

ps -e | grep toppen

Vi kan säga upp både av dem med detta kommando:

sudo killall toppen

Inget svar innebär inga problem, så båda dessa processer har avslutats.

Få en Dynamisk Vy med i toppen

Utdata från ps är en ögonblicksbild av vyn. Det spelar ingen uppdatering. För att få en aktuell bild av de processer, använd upp kommandot. Det ger en dynamisk bild av de processer som körs i din dator. Displayen är uppdelad i två delar. Det är en dashboard-området på toppen av skärmen består av rader text och en tabell i den nedre delen av skärmen består av kolumner.

Börja högst upp med detta kommando:

topp

Kolumnerna innehåller information om de processer:

  • PIDProcess-ID
  • ANVÄNDARE: Namnet på ägaren av processen
  • PR: Process prioritet
  • NI: nice värdet av processen
  • VIRT: Virtuellt minne som används av processen
  • RES: Resident minne som används av processen
  • SHR: Delat minne som används av processen
  • S: Status för processen. Se listan nedan för de värden detta fält kan ta
  • %CPU: den andel av CPU-tid som används av processen eftersom den senaste uppdateringen
  • %MEM: andel fysiskt minne som används
  • TID+: totala CPU-tid som används av uppgift i hundradelar av en sekund
  • KOMMANDO: kommando eller kommandoraden (namn och parametrar på kommandoraden) Om kolumnen kommando som inte syns, tryck på “Höger Pil” – tangenten.

Status för processen kan vara något av följande:

  • D: Kontinuerlig sömn
  • R: Kör
  • S: Sova
  • T: Spåras (slutat)
  • Z: Zombie

Tryck på “Q” – tangenten för att avsluta från toppen.

RELATERAT: 37 Viktiga Linux-Kommandon Du Bör Veta

Innan Du Döda en Process

Se till att det är det du är ute efter, och kontrollera att det inte kommer att orsaka dig några problem. I synnerhet är det värt att kolla med -H (hierarki) och –skogen alternativ för att se till att det inte har något viktigt att barn processer som du skulle glömma det.

LÄS NÄSTA

  • “10 Enkla Steg till Bättre iPhone och iPad Säkerhet
  • “Teckensnitt och webbläsartillägg Som Hjälper Personer med Dyslexi att Läsa på Nätet
  • “Hur man Använder curl för att Ladda ner Filer Från kommandoraden i Linux
  • “Hur Kan Min ISP Säger jag Använder BitTorrent?
  • “Hur man Ställer Upp en Smart Garage