CMD Master
Zpět na blog
AktualizovánoArnošt Havelka

Jak v Bashi vypsat běžící procesy pomocí ps

Pomocí ps vypište běžící procesy, přečtěte PID a vlastníka, prohlédněte jeden proces a zjistěte, kdy je vhodnější živý přehled top.

Spustit interaktivní lekci
Jak v Bashi vypsat běžící procesy pomocí ps

Chcete-li z terminálu Bash zjistit, co právě běží, začněte příkazem ps. Samotný příkaz zobrazí procesy připojené k vašemu aktuálnímu terminálu. Pro širší systémový výpis použijte ps -ef a před jakýmkoli zásahem čtěte PID, vlastníka, stav a příkaz společně. V lekci výpisu procesů si můžete čtení výstupu procvičit bez zásahu do skutečné zátěže.

Začněte aktuálním terminálem

Nejprve spusťte příkaz bez přepínačů:

ps

Přesné názvy sloupců se liší podle operačního systému, krátký výsledek však obvykle obsahuje:

  • PID: identifikátor procesu používaný například příkazem kill.
  • TTY: terminál spojený s procesem.
  • TIME: čas procesoru spotřebovaný procesem.
  • CMD nebo COMMAND: spuštěný program.

Tento malý přehled se hodí, když chcete potvrdit příkaz spuštěný ze stejného terminálu. Nejde o úplný seznam všeho, co na počítači běží.

Vyzkoušejte příkaz

Vypište procesy připojené k tomuto terminálu.

Sestavit příkaz
ps
Terminál
~$ps
PID TTY TIME CMD 1234 pts/0 00:00:01 bash 2345 pts/0 00:00:00 ps 3456 pts/0 00:00:05 node 4567 pts/0 00:00:02 worker

Vypište procesy v celém systému

Pro úplnější snímek použijte:

ps -ef

Tato forma obvykle obsahuje vlastníka procesu, PID, PID nadřazeného procesu, údaje o spuštění a příkazový řádek. Oproti neustále se měnící obrazovce ji lze snáze uložit, prohledat nebo přiložit k záznamu o incidentu.

V linuxové dokumentaci se setkáte také s ps aux. Obě formy vycházejí z různých stylů přepínačů a mohou zobrazovat mírně odlišné sloupce. Běžně se používají obě, skript by si však měl vybrat jeden známý formát a nepředpokládat, že každý unixový systém tiskne totožný výstup.

Potřebujete-li konkrétní pole, vyžádejte je explicitně:

ps -eo pid,ppid,user,stat,%cpu,%mem,command

Význam a pořadí sloupců tak budou jasné. Některé názvy polí a možnosti řazení se mezi Linuxem a macOS liší, proto před vložením podrobného formátu do přenositelného skriptu zkontrolujte man ps.

Před použitím prohlédněte jeden PID

Pokud jiný nástroj ohlásí PID 123, prohlédněte přímo tento proces:

ps -p 123 -o pid,ppid,user,stat,etime,command

Číslo 123 nahraďte aktuálně zjištěným PID. Potvrďte vlastníka a celý příkaz, ne jen číslo. PID lze po skončení procesu použít znovu, takže identifikátor zkopírovaný ze staré zprávy už může patřit jinému programu.

Když se situace mění v čase, použijte top

Výstup ps je snímek jednoho okamžiku. Chcete-li sledovat změny využití procesoru nebo paměti, použijte top:

top

Program top ukončíte klávesou q. Živý přehled pomáhá odhalit proces, který se opakovaně dostává na první místo, zatímco ps je vhodnější pro zaznamenání přesného okamžiku nebo kontrolu známého PID. Ani jeden nástroj automaticky neurčí, zda je bezpečné proces ukončit; rozhodnutí stále závisí na jeho vlastníkovi, příkazu a úloze.

Kontrola znalostí

1 / 1

Která hodnota určuje přesný proces, který chcete prohlédnout?

Jakmile ověříte správný proces, pokračujte článkem jak bezpečně ukončit proces. Úplná pravidla přepínačů a výstupu najdete v manuálu procps-ng pro ps.

Reference

Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.

Další

Jak v Bashi bezpečně najít a ukončit zaseknutý proces

Ověřte proces a jeho PID, nejprve pošlete SIGTERM, zkontrolujte výsledek a SIGKILL použijte jen tehdy, když se proces neukončí.