Sleva 50% všechny plány, omezený čas. Od $2.48/mo
Zbývá 10 min
Servery a OS

Zvládnutí správy procesů: Linux ps aux command

Ada Lovegood By Ada Lovegood 10 min čtení Aktualizováno 11. července 2024
příkaz ps aux v Linuxu

Máte v prohlížeči otevřeno alespoň pět dalších karet, abyste našli odpověď na Linux problém, se kterým jste se setkali?
Toto chování není specifické pro vás nebo pro lidi obecně. Stroje také pracují na více věcech najednou. A stejně jako vy, Linux je také multitasking a má současně spuštěno několik procesů. Ať už jste vývojář, který používá Linux profesionálně, nebo běžný uživatel, který Linux používá pro své každodenní činnosti, měli byste být schopni porozumět těmto paralelním procesům a udržovat úplnou kontrolu nad vaším systémem. Správa procesů a řízení systému jsou nezbytné aspekty provozu systému Linux.

Chcete-li efektivně spravovat procesy běžící v systému, vidět, co se v reálném čase děje, mít obecný přehled o všech procesech na pozadí a řídit systémové prostředky, potřebujete technické znalosti správy procesů. Příkaz ps aux je výkonný příkaz, který hraje zásadní roli ve správě procesů a řízení systému. V tomto příspěvku se dozvíte více o příkazu ps aux a jeho případech použití. Pokryjeme také základy toho, jak fungují Linux procesy.

Porozumění správě procesů v Linux

Při práci s Linux jsou většina našich interakcí se systémem formou příkazů. V Linux je proces vykonáním příkazu. Správa procesů Linux zahrnuje manipulaci s procesy, které příkaz spustil. Můžete ukončit proces, spustit proces nebo obnovit procesy, které byly ukončeny. Můžete také manipulovat s příkazy, které jsou v průběhu.

Existují dva typy Linux procesů:

  • Procesy v popředí
  • Procesy na pozadí

Linux procesy v popředí

Proces v popředí je proces, který se aktivně spouští a obvykle vyžaduje neustálou interakci s uživatelem v reálném čase. Když je proces v popředí v akci, je spouštění ostatních procesů pozastaveno. Nemůžete tedy spouštět žádné jiné příkazy. Proces v popředí přijímá vstup z klávesnice jako standardní vstup neboli stdin. Aby nedošlo k dalšímu zmatení, stdin a stdout jsou Linux datové proudy spolu se stderr. Je to v podstatě to, jak uživatel interaguje s procesem a poskytuje mu data. Existuje standardní výstup neboli stdout, který produkuje proces na základě své funkčnosti a vstupu. Procesy v popředí jsou výchozím režimem provádění v Linux.

Linux procesy na pozadí

Procesy na pozadí jsou přesnou opačností procesů v popředí, protože nevyžadují interakci s uživatelem a neobsazují výhradně celý prostor terminálu, což umožňuje spouštění jiných procesů. Typ vstupu a výstupu procesů na pozadí je také jiný. Obvykle nepřijímají stdin. Výsledky procesu však mohou být zobrazeny jako stdout. Zobrazování výstupu procesů na pozadí probíhá souběžně s výstupem jiných procesů v popředí. Takže můžete vidět průběh nebo výsledky procesu na pozadí bez narušení jiných důležitých akcí.

Protože provádění широké řady úloh v Linux závisí na příkazovém řádku, mohou být procesy v popředí problematické, zatímco spouštění procesů na pozadí vám oslobodí terminál pro práci na jiných úkolech. Umístění úkolu v popředí na pozadí je tedy rozumnou věcí. Chcete-li poslat proces na pozadí měli byste jej nejdříve zastavit, aby se nevykonával v popředí. Stačí stisknout CTRL+Z. Pak zadáním příkazu bg bude zastavený proces spuštěn znovu na pozadí. Příkaz fg zvrátí proces a přinese jej do popředí.

Process Status; syntaxe, příkazy a interpretace výstupu

Efektivní správa procesů v Linux vyžaduje pochopení stavu procesů, které lze sledovat příkazem ps aux. Než se ale ponoříme hlouběji do příkazu ps aux, podívejme se na různé stavy procesů. I když existuje několik typů procesů a stavů procesů, zde je tabulka těch nejčastějších:

Stav procesu popis
Spuštěno(R) Proces aktuálně běží a využívá CPU zdroje.
Usínání Přerušitelný (S) Proces čeká na konkrétní vstup nebo událost, aby se znovu spustil. V současné době nepoužívá CPU prostředky. Když jsou k dispozici prostředky nebo jsou dány signály, proces se znovu spustí.
Nepřerušitelné (D) Stejně jako proces v přerušitelném spánku, proces v neprchyrušitelném spánku nepoužívá CPU prostředky. Jediný rozdíl je v tom, že nereaguje na signály, vrátí se do činnosti jen když jsou dostupné prostředky.
Zastaveno(T) Uživatelský vstup nebo konkrétní událost pozastavila proces. Proces v zastaveném stavu nepoužívá žádné CPU prostředky.
Mrtvý(X) Proces byl ukončen a již neexistuje.

Dobrá znalost těchto stavů procesů je klíčovým aspektem efektivní správy a řešení problémů v systémech Linux. Nyní si ukážeme syntaxi a příkazy pro získání stavu procesů v Linux a jak interpretovat výstup.

Syntaxe a příkazy pro získání stavu procesu

Stav procesu v Linux můžete získat základní syntaxí příkazu ps:

ps [process name]

S příkazem ps se používají také další možnosti:

k: Tato možnost zobrazuje kompletní seznam všech procesů spuštěných v systému. Poskytuje informace jako ID procesů (PID), ID nadřazených procesů (PPID), CPU a využití paměti a stavy procesů. Výstup příkazu ps aux je přehlednější, má lepší čitelnost a obsahuje mnohem více užitečných informací než základní příkaz ps.

ef: Tato možnost zobrazuje úplný seznam procesů s dalšími detaily včetně hierarchie procesů ve stromové struktuře.

l: Tato možnost poskytuje dlouhý formát výpisu s podrobněji informacemi o procesech.

Pochopení výstupu

Když spustíte příkaz ps s požadovanými možnostmi, vygeneruje výstup, který reprezentuje procesy aktuálně spuštěné ve vašem systému. Výstup se skládá ze sloupců, které zobrazují různé atributy procesu, včetně ID procesu (PID), ID nadřazeného procesu (PPID), CPU využití, využití paměti, stav procesu, typ terminálu a název příkazu.

Zde je vysvětlení, co jednotlivé sloupce znamenají:

PID: Tento sloupec zobrazuje jedinečné ID procesu.

TTY: Tento sloupec zobrazuje typ terminálu, na který se uživatel přihlásil.

ČAS: Tento sloupec je ukazatelem toho, kolik CPU spotřeboval tento proces v minutách a sekundách.

CMD: Tento sloupec představuje název příkazu, který spustil tento proces.

Analýza informací poskytovaných příkazem ps vám dává hlubší vhled do chování vašeho stroje Linux.

Pokročilé ps techniky pro správu procesů s příkazem ps

Podívejme se na některé pokročilé funkce příkazu ps a jak je lze efektivně využívat:

1. Třídění procesů

Příkaz ps aux lze použít k řazení konečného výstupu podle různých sloupců. Můžete například seřadit procesy podle ID procesu nebo CPU využití, abyste je viděli v požadovaném pořadí.

Zde je příklad řazení procesů podle ID procesu pomocí ps aux:

ps aux –-sort pid

Příkaz head se používá k zobrazení pouze prvních pěti řádků výstupu.

ps aux řazeno podle PID

2. Vizualizace stromu procesů

Chcete-li jasně vidět vztah nadřízených a podřízených procesů, použijte příkaz ps s volbou forest.

ps -aux --forest

vztah nadřazeného a podřízeného procesu Linux

Pokud chcete vidět vztahy mezi procesy v hierarchické struktuře, můžete použít příkaz pstree. Tento příkaz vytvoří výstup, který je srozumitelnější a perfektně ukazuje hierarchii procesů. Příkaz spusťte takto:

pstree [pid or username]

Zadáním PID tohoto příkazu řeknete příkazu, aby považoval daný proces za kořen stromu.

3. Filtrování procesů

Představte si, že chcete pracovat se specifickou skupinou procesů. Například chcete vypsat všechny procesy jednoho uživatele. Filtrování procesů podle charakteristiky se provádí pomocí příkazu ps. V tomto příkladu jsme procesy filtrovali podle uživatelského jména.

ps -u [username]

filtrování procesů Linux pomocí příkazu ps

Příkaz ps aux grep umožňuje filtrovat procesy podle libovolného vzoru nebo klíčového slova, které příkazu předáte. Podívejte se na příklad kódu níže:

ps aux grep příklad příkazu

Tento příkaz nejdříve vypíše všechny procesy a předá výstup příkazu grep, který ze seznamu vyfiltruje procesy na základě ID. Na obrázku výše vidíte seznam všech procesů, které obsahují číslo 15 ve svých informacích.

Další informace o příkazu ps a jeho možnostech najdete v manuálové stránce tohoto příkazu. Kód níže vám zobrazí manuálovou stránku:

man ps

Správa priority úloh v Linux

Abychom lépe vysvětlili, jak správa procesů v Linux skutečně funguje, musíme se věnovat také prioritám procesů a jejich změnám. Představte si situaci, kdy spouštíte několik procesů najednou a CPU je přetížen úlohami. Pokud chcete v takové situaci efektivně spravovat prostředky, musíte změnit priority běžících úloh. Každý proces v Linux má přiřazenou hodnotu priority. Tato hodnota pomáhá jádru rozhodovat, které úlohy zpracovat přednostně. Hodnota priority se pohybuje od -20 do 19, přičemž 19 označuje nejnižší prioritu a -20 nejvyšší. Proces s nejvyšší prioritou dostává více času CPU než ostatní procesy. Hodnoty priority se běžně označují jako hodnoty „nice", přičemž nižší hodnota nice znamená vyšší prioritu.

Příkazy nice a renice vám umožňují efektivně přidělit systémové prostředky.

Než ale budeme měnit prioritu procesů, podívejme se nejdříve na první případ použití příkazu ps.

  • Zobrazení aktuální priority všech procesů pomocí příkazu ps:

Tento příkaz vypíše všechny procesy spolu s jejich identifikátory (PID), názvy příkazů a aktuální prioritou (nice value):

 

ps -eo pid,cmd,nice

Zobrazení priority všech procesů pomocí příkazu ps

  • Spuštění procesu s výchozí vysokou prioritou pomocí příkazu nice:

Proces můžete spustit s požadovanou prioritou pomocí tohoto příkazu:

nice -n [priority] [command]

Nahraďte [priority] požadovanou zápornou hodnotou představující úroveň priority a [command] příkazem, který chcete spustit.

I'm ready to translate to Czech. However, I don't see the English text that needs to be translated in your message. Could you please provide the English UI labels you'd like me to translate?

spuštění procesu s výchozí vysokou prioritou

  • Změna priority již spuštěného příkazu:
renice -n [priority] -p [PID]

Nahraďte ID procesu, který chcete manipulovat, hodnotou [PID].

Pokud chcete mít výkonný stroj Linux na provádění všech možných úloh, a Linux VPS je pro vás nejlepším řešením. Cloudzy nabízí různé plány Linux VPS s předinstalovanou distribucí dle vašeho výběru. Díky mnoha výhodám, jako je podpora 24/7, záruka vrácení peněz na 30 dní a záruka dostupnosti 99,95 %, si Cloudzy udržuje nízké ceny. Naše ceny pro plány Linux VPS začínají už od pouhých 4,95 $/měsíc.

Linux VPS hosting

Pořiď si economy nebo premium Linux VPS pro hosting tvého webu nebo vzdálenou plochu, za nejnižší cenu na trhu. VPS běží na Linux KVM pro vyšší efektivitu a na výkonném hardwaru s NVMe SSD úložištěm pro vyšší rychlost.

Číst dál

Závěr

Závěrem lze říci, že ovládnutí správy procesů a řízení systému je nezbytné pro správce systémů, nadšence Linux, kteří se chtějí učit více, a běžné uživatele Linux. Poznání schopností a funkcí příkazu ps vám usnadní cestu k pochopení správy procesů. Proto se tento článek zaměřil na důležité případy použití příkazu ps a poskytnul čtenářům seznámení se procesy Linux.

Často kladené otázky

Co je to příkaz ps aux v Linux?

Příkaz ps aux Linux je běžně používaný příkaz v Linux pro získání informací o spuštěných procesech. Poskytuje komplexní seznam procesů v přehledném formátu, včetně jejich ID procesů (PID), CPU a využití paměti, stavů spuštění a dalších důležitých podrobností.

Jaké jsou dva typy procesů v Linux?

Procesy v popředí a procesy na pozadí. Procesy v popředí zabírají terminál během běhu a neumožňují dalších spuštění. Procesy na pozadí běží na pozadí a nezabírají celý terminál.

Jak mohu zobrazit seznam procesů běžících na mém Linux systému?

Seznam procesů spuštěných na vašem systému Linux můžete získat pomocí příkazů jako ps, top nebo htop. Například příkaz Linux ps aux poskytuje podrobné informace o všech spuštěných procesech.

Sdílet

Další z blogu

Pokračuj ve čtení.

Titulní obrázek k článku Nejlepší self-hosted aplikace, které můžeš spustit s Cosmos Cloud, s panely aplikací kolem dashboardu Cosmos.
Servery a OS

Nejlepší self-hosted aplikace, které můžeš spustit s Cosmos Cloud: soubory, média, hesla, automatizace a další!

Možná jsi už nastavil Cosmos Cloud a teď chceš vidět, které aplikace se k němu hodí, nebo ses ještě nerozhodl pro Cosmos a chceš jen zjistit, jak dobře se hodí k tvému workflow

Nick SilverNick Silver 16 min čtení
Titulní obrázek k článku Portainer vs Cosmos Cloud pro správu Docker aplikací s diagramem hybridního setupu a neonovými bloky ops vs access.
Servery a OS

Portainer vs Cosmos Cloud: nejlepší volba pro správu Docker aplikací

Pokud už znáš Docker a chceš jen čistší způsob, jak spustit rostoucí stack aplikací, tady je krátká odpověď na Portainer vs Cosmos Cloud. Portainer je silnější volba pro přímou

Nick SilverNick Silver 14 min čtení
Titulní grafika k článku Cosmos Cloud vs CasaOS vs Umbrel zobrazující tři self-hosted cesty uvnitř jednoho abstraktního světa cloudových sítí.
Servery a OS

Cosmos Cloud vs CasaOS vs Umbrel: která self-hosted platforma se hodí k tvému setupu?

Krátká odpověď zní, že CasaOS je stále nejjednodušší místo, kde začít, Umbrel má nejčistší kurátorovaný pocit a Cosmos Cloud dává větší smysl, jakmile chceš pevnější kontrolu nad doménami

Nick SilverNick Silver 11 min čtení

Hotov k nasazení? Od 2,48 $/měs.

Nezávislý cloud od roku 2008. AMD EPYC, NVMe, 40 Gbps. Vrácení peněz do 14 dnů.