Úvod
Každá aplikace, kterou používáte, nebo příkaz, který v systému Linux spustíte, vytváří proces nebo úlohu. Jako správce systému budete muset řídit procesy, abyste zajistili optimální výkon systému.
V tomto tutoriálu se budeme zabývat různými příkazy Linuxu, které můžete použít k zobrazení a správě aktuálně spuštěných procesů.
Předpoklady
- Systém se systémem Linux
- Účet s právy root nebo sudo
- Přístup do okna terminálu/příkazového řádku
Procesy v Linuxu
Procesy v Linuxu se spustí pokaždé, když spustíte aplikaci nebo spustíte příkaz. Zatímco každý příkaz vytváří jeden proces, aplikace vytvářejí a spouštějí více procesů pro různé úlohy.
Ve výchozím nastavení začíná každý nový proces jako popředí proces. To znamená, že musí skončit, než může začít nový proces. Běžící procesy na pozadí umožňuje provádět další úkoly současně.
Seznam běžících procesů v Linuxu
Chcete-li zobrazit aktuálně spuštěné procesy, použijte ps
, top
, htop
a top
Linuxové příkazy. Můžete také kombinovat ps
pomocí příkazu pgrep
příkaz k identifikaci jednotlivých procesů.
Vypište seznam běžících procesů v Linuxu pomocí příkazu ps
ps
Příkaz Linux vytváří snímek aktuálně běžících procesů. Na rozdíl od ostatních příkazů v tomto seznamu ps
prezentuje výstup jako statický seznam, neaktualizovaný v reálném čase.
ps
používá následující syntaxi:
ps [options]
Často používané ps možnosti příkazu zahrnují:
a
:Seznam všech procesů ničení pro všechny uživatele.-A, -e
:Seznam všech procesů v systému.-a
:Uveďte všechny procesy kromě vedoucích relací (případy, kde je ID procesu stejné jako ID relace) a procesů, které nejsou spojeny s terminálem.-d
:Seznam všech procesů kromě vedoucích relací.--deselect, -N
:Seznam všech procesů kromě těch, které splňují podmínku definovanou uživatelem.f
:Zobrazí hierarchii procesů jako ASCII art.-j
:Zobrazuje výstup ve formátu úloh.T
:Seznam všech procesů spojených s tímto terminálem.r
:Uveďte pouze spuštěné procesy.u
:Rozbalte výstup tak, aby zahrnoval další informace, například využití procesoru a paměti.-u
:Definujte uživatele, jehož procesy chcete vypsat.x
:Zahrnout procesy bez TTY.
Spuštění ps
příkaz bez jakýchkoli voleb vytvoří výstup podobný:
Výchozí výstup zahrnuje následující kategorie:
- PID :Identifikační číslo procesu.
- TTY :Typ terminálu, na kterém proces běží.
- ČAS :Celkové množství využití procesoru.
- CMD :Název příkazu, který spustil proces.
Pomocí kombinace a
, u
a x
možnosti vyústí v podrobnější výstup:
ps aux
Mezi nové kategorie rozšířeného výstupu patří:
- UŽIVATEL :Jméno uživatele spouštějícího proces.
- %CPU :Procento využití procesoru.
- %MEM :Procento využití paměti.
- VSZ :Celková virtuální paměť použitá procesem v kilobajtech.
- RSS :Velikost rezidentní sady, část paměti RAM obsazená procesem.
- STAT :Aktuální stav procesu.
- START :Čas, kdy byl proces zahájen.
Chcete-li zobrazit běžící procesy v hierarchickém zobrazení, zadejte:
ps -axjf
Filtrujte seznam procesů podle uživatele pomocí:
ps -U [real user ID or name] -u [effective user ID or name] u
Například zobrazení seznamu procesů spuštěných uživatelem s názvem phoenixnap :
ps -U phoenixnap -u phoenixnap u
Vypište seznam běžících procesů v Linuxu pomocí horního příkazu
top
zobrazí seznam běžících procesů v pořadí podle klesajícího využití CPU. To znamená, že procesy nejvíce náročné na zdroje se objeví v horní části seznamu:
Výstup top
příkaz se aktualizuje v reálném čase s výchozí třísekundovou obnovovací frekvencí. top
výstup příkazu obsahuje následující kategorie:
- PID :Identifikační číslo procesu.
- UŽIVATEL :Jméno uživatele spouštějícího proces.
- PR :Priorita plánování pro proces.
- NI :Pěkná hodnota procesu se zápornými čísly označujícími vyšší prioritu.
- VIRT :Množství virtuální paměti použité procesem.
- RES :Množství rezidentní (fyzické) paměti používané procesem.
- SHR :Celková sdílená paměť použitá procesem.
- S :Stav procesu – R (běžící) nebo S (spící).
- %CPU :Procento využití procesoru.
- %MEM :Procento využití paměti.
- TIME+ :Celkové využití CPU.
- PŘÍKAZ :Název příkazu, který spustil proces.
Zatímco top
je spuštěn příkaz, použijte následující možnosti pro interakci s ním nebo změnu výstupního formátu:
- c :Zobrazí absolutní cestu procesu.
- d :Změňte obnovovací frekvenci výstupu na uživatelem definovanou hodnotu (v sekundách).
- h :Zobrazí okno nápovědy.
- k :Zabijte proces poskytnutím PID.
- M :Seřadit seznam podle využití paměti.
- N :Seřadit seznam podle PID.
- r :Změňte hodnotu nice (prioritu) procesu zadáním PID.
- z :Změňte barvu výstupu, abyste zvýraznili běžící procesy.
- q :Ukončete příkazové rozhraní.
Vypište seznam běžících procesů v Linuxu pomocí příkazu htop
htop
příkaz nabízí stejný výstup jako top
příkaz, ale snáze srozumitelným a uživatelsky přívětivým způsobem.
Protože většina distribucí Linuxu tento příkaz neobsahuje, nainstalujte jej pomocí:
sudo apt install htop
Pomocí htop
příkaz poskytuje následující výstup:
K interakci s htop
použijte následující klávesy příkaz:
- Směrové klávesy :Posouvejte seznam procesů svisle a vodorovně.
- F1 :Otevřete okno nápovědy.
- F2 :Otevřete nastavení příkazu htop.
- F3 :Vyhledejte proces zadáním názvu.
- F4 :Filtrujte seznam procesů podle názvu.
- F5 :Přepínání mezi zobrazením hierarchie procesů jako seřazeného seznamu nebo stromu.
- F6 :Řazení procesů podle sloupců.
- F7 :Sníží hodnotu nice (zvýší prioritu) procesu.
- F8 :Zvýší hodnotu nice (sníží prioritu) procesu.
- F9 :Zabijte vybraný proces.
- F10 :Ukončete příkazové rozhraní.
Vypište seznam běžících procesů v Linuxu pomocí příkazu atop
top
poskytuje ve srovnání s top
komplexnější přehled o běžících procesech příkaz. Začněte instalací top
příkaz s:
sudo apt install atop
top
příkaz vytvoří výstup podobný:
Sekce záhlaví výstupu příkazu poskytuje přehled systémových prostředků, včetně statistik souvisejících s procesy a výkonem a využití paměti, disku a sítě.
Spodní část uvádí aktuálně spuštěné procesy a obsahuje následující kategorie:
- PID :Identifikační číslo procesu.
- SYSCPU :Využití CPU procesem při práci se systémem.
- USRCPU :Využití CPU procesem při běhu v uživatelském režimu.
- VGROW :Množství virtuální paměti, kterou proces zabíral od poslední aktualizace výstupu.
- RGROW :Množství fyzické paměti, kterou proces zabral od poslední aktualizace výstupu.
- RUID :Skutečné uživatelské ID uživatele, který spustil proces.
- ST :Aktuální stav procesu.
- EXC :Kód ukončení po ukončení procesu.
- THR :Počet vláken, která proces používá.
- S :Aktuální stav primárního vlákna procesu.
- CPUNR :Počet CPU použitých procesem.
- CPU :Procento CPU použité procesem.
- CMD :Název příkazu, který spustil proces.
Pomocí top
příkaz s následujícími možnostmi změní výstupní formát:
-a
:Zobrazit pouze aktivní procesy.-c
:Zobrazit příkazový řádek pro každý proces.-d
:Zobrazit informace o disku.-l
:Zobrazit celkové hodnoty jako průměr za sekundu.-m
:Zobrazit informace o paměti.-n
:Zobrazit informace o síti.-s
:Zobrazit informace o plánování procesu.-v
:Zobrazit podrobný výstup.-y
:Zobrazit jednotlivá vlákna.
Pro interakci s top
použijte následující příznaky příkaz:
- a :Seřadit podle nejaktivnějších zdrojů.
- c :Seřadit podle spotřeby CPU.
- d :Seřadit podle aktivity disku.
- m :Seřadit podle využití paměti.
- n :Seřadit podle síťové aktivity.
Najděte ID procesů pomocí příkazu pgrep
Pomocí pgrep
umožňuje vyhledat konkrétní proces. pgrep
používá následující syntaxi:
pgrep [process name]
Například pomocí následujícího příkazu vyhledejte firefox proces:
pgrep firefox
Výstup příkazu uvádí PID procesu:
Použití tohoto PID s ps
příkaz vám umožní získat více informací o procesu. V tomto příkladu použití PID 1439 poskytuje informace o firefoxu proces:
ps -e | grep 1439