Är ditt Linux-system löpande? Eller är du bara nyfiken på vad som händer under huven? Det finns ett kraftfullt inbyggt program som heter "ps" som gör det möjligt för användare att se en ögonblicksbild av processerna som körs på ett system. Vi diskuterar några av de möjligheter som finns tillgängliga för ps, och i slutändan borde du kunna kontrollera köra processer på din Linux-dator som en erfaren nörd.

Introduktion

De flesta versioner av ps accepterar BSD-stilalternativ (som kan vara grupperade och får inte användas med ett streck), UNIX-stilalternativ (som kan vara grupperade och måste användas med en streck) och GNU långa alternativ (som föregås av två streck). För denna artikel kommer vi att mixa och använda flera alternativtyper, med en bias för UNIX-stilar. Till exempel:

 ps -u root u -sort = pid 
  • UNIX STYLE -u root anger användar = root
  • BSD STYLE u anger visning av användarorienterat format. Detta är ett favoritalternativ eftersom utdataformatet som produceras genom att använda detta innehåller en del väldigt användbar information.
  • GNU LONG OPTION- –sort specificerar process sorteringsordning. I det här fallet, sortera efter process ID (pid)

Den här artikeln föredrar UNIX-alternativ och använder endast BSD för korthet. Till exempel kommandot

 ps u 

visar processerna av den nuvarande användaren som är ansluten till en terminal med ett "användarorienterat" utgångsformat. För att få samma utmatningsformat med hjälp av UNIX-alternativ kräver det alternativet

 ps -o "användare, pid, pcpu, pmem, vsz, rss, tty, stat, bsdstart, bsdtime, args" 

Denna "-ö" -alternativets argumentförklaringar är:

  • användare - effektiv användarnamn eller användarnamn för processen
  • pid - process-id
  • pcpu - CPU-tiden som används av processen dividerad med den tid processen har kört
  • pmem - procentandelen av det fysiska minnet som används av processen
  • vsz - processens virtuella minnesstorlek
  • rss - det oväxlade fysiska minnet som processen har använt
  • tty - processens kontrollterminal
  • stat - processläget, bestämt med hjälp av processtatuskoder (läs manens sidor för mer info)
  • start_time - tiden då kommandot startade
  • tid - den kumulativa CPU-tiden som används av processen
  • args - kommandot som används för att köra processen, tillsammans med dess argument. (Det här är en anledning till att det aldrig är en bra idé att köra ett kommando och ange ditt lösenord som ett kommandoradsargument. Alla andra användare på systemet kan köra ps och se de kommandon som du har kört tillsammans med alla alternativ och argument som passerat ).

Konventionen som används hädanefter kommer att vara kommandot (ps) följt av alternativet BSD 'u' för att ange utgångsformatering och sedan UNIX- och GNU-alternativen efter behov.

Några "PS" -alternativ

Att köra 'ps' utan argumenter visar en lista över processer med samma användar-ID som inbjudaren och associerad med samma terminal som inbjudaren.

För att visa alla pågående processer:

 ps u -e 

För att visa alla processer av den nuvarande användaren:

 ps u -u `whoami` 

Att visa alla processer av den nuvarande användaren, men sorterade efter cpu-användning (fallande).

OBS! I kommandot nedan använder vi '-pcpu' för att uppnå procentuell cpu-användning som faller. För stigande, använd '+ pcpu' eller bara 'pcpu.' Kontakta manens sidor för ytterligare sorteringsspecifika. Några vanliga är pmem (minnesanvändning), starttid (när kommandot kördes) och tid (mängd cpu-tid som används av kommandot).

 ps u -u `whoami` --sort = -pcpu 

För att visa alla processer av den nuvarande användaren, i ett trädformat:

 ps u -jH -u `whoami` 

Med hjälp av rör kan ps kombineras med huvud för att visa de bästa processerna. Nästa kommando sorteras av minnesanvändning först och rör sedan igenom huvudet för att visa processerna med det mesta minnet. Huvudet visar de första tio linjerna som standard, så det här kommandot skulle visa de nio bästa processerna (utmatningsrubriken är första raden).

Notera: "% mem" och "pmem" är synonymt, liksom "% cpu" och "pcpu".

 ps u -u `whoami` --ort = -% mem | huvud 

För att visa samma för alla processer, oavsett användare, använd alternativet -e :

 ps u -e -sort = -% mem | huvud 

Slutsats

Det finns bokstavligen hundratals alternativ (även om vissa är aliaser), och vi skulle gärna höra om och se dina favoritanvändningsmetoder. Vänligen dela i kommentarerna nedan.