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í.
Stav procesu; 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 je aktuálně spuštěn a spotřebovává CPU prostředky. | |
| 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é techniky ps pro správu procesů pomocí příkazu 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.

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

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]

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:

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

- 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?

- 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.
Pořiďte si ekonomický nebo prémiový Linux VPS pro hostování webu nebo vzdálenou plochu, za nejnižší cenu na trhu. VPS běží na Linux KVM pro vyšší výkon a na výkonném hardwaru s úložištěm NVMe SSD pro vyšší rychlost.
Číst víceZá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ů spuštěných na mém systému Linux?
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.