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í lekciChcete-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ěží.
Vypište procesy připojené k tomuto terminálu.
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 / 1Která 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ší
Ověřte proces a jeho PID, nejprve pošlete SIGTERM, zkontrolujte výsledek a SIGKILL použijte jen tehdy, když se proces neukončí.