Legalább öt másik lap van nyitva a böngészőjében, és megpróbálja megtalálni a választ egy Linux-problémára, amelybe belefutott?
Ez a viselkedés nem jellemző rád vagy általában az emberekre. A gépek is többfeladatosak. És csakúgy, mint te, a Linux is többfeladatos, és több folyamat is zajlik egyszerre. Függetlenül attól, hogy Ön egy Linuxot professzionálisan használó fejlesztő, vagy egy normál felhasználó, aki a mindennapi tevékenységei során Linuxot használ, képesnek kell lennie arra, hogy megértse ezeket a párhuzamos folyamatokat, hogy teljes ellenőrzést tarthasson a rendszere felett. A folyamatkezelés és a rendszervezérlés a Linux rendszer futtatásának alapvető elemei.
A rendszeren futó folyamatok hatékony menedzseléséhez, a valós időben történő események megtekintéséhez, az összes háttérfolyamat általános képéhez és a rendszer erőforrásainak vezérléséhez a folyamatmenedzsment technikai ismereteire van szükség. A ps aux parancs egy erőteljes parancs, amely létfontosságú szerepet játszik a folyamatkezelésben és a rendszervezérlésben. Ebben a bejegyzésben többet megtudunk a ps aux parancsról és használati eseteiről. Kitérünk a Linux-folyamatok működésének alapjaira is.
A folyamatkezelés megértése Linuxban
Amikor Linuxszal dolgozunk, a legtöbb interakciónk a rendszerrel parancsok formájában történik. A Linuxban a folyamat egy parancs végrehajtása. A Linux folyamatkezelése magában foglalja a parancs által elindított folyamatok manipulálását. Leállíthat egy folyamatot, elindíthat egy folyamatot, vagy folytathatja a leállított folyamatokat. A folyamatban lévő parancsokat is módosíthatja.
Kétféle Linux-folyamat létezik:
- Előtérbeli folyamatok
- Háttérfolyamatok
Linux előtérbeli folyamatok
Az előtérben lévő folyamat olyan folyamat, amelyet aktívan hajtanak végre, és jellemzően állandó és valós idejű interakciót igényel a felhasználóval. Amikor egy előtérben lévő folyamat működik, a többi folyamat végrehajtása szünetel. Tehát nem futtathat más parancsokat. Az előtérben lévő folyamatok szabványos bemenetként vagy stdinként kapják a bemenetet a billentyűzetről. A további félreértések elkerülése érdekében az stdin és az stdout Linux-adatfolyamok az stderr mellett. Alapvetően az, hogy a felhasználó hogyan lép interakcióba a folyamattal, és hogyan szolgáltat hozzá adatokat. Létezik szabványos kimenet vagy stdout, amelyet a folyamat a funkcionalitása és a bemenete alapján állít elő. Az előtérben lévő folyamatok a Linux alapértelmezett végrehajtási módjai.
Linux háttérfolyamatok
A háttérfolyamatok szöges ellentétei az előtérbeli folyamatoknak, mivel nem igényelnek felhasználói beavatkozást, és nem kizárólagosan foglalják el a terminál teljes területét, lehetővé téve más folyamatok végrehajtását. A háttérfolyamatok bemeneti és kimeneti típusa is eltérő. Általában nem szednek stdint. A folyamat eredményei azonban stdout-ként is megjeleníthetők. A háttérfolyamatok kimenetének megjelenítése más előtérbeli folyamatok kimenetével párhuzamosan történik. Így láthatja a háttérfolyamat előrehaladását vagy eredményeit anélkül, hogy más fontos műveleteket megszakítana.
Mivel Linuxon a feladatok széles körének végrehajtása a parancssortól függ, az előtérben futó folyamatok problémát okozhatnak, míg a háttérben futó folyamatok megszabadítják a terminált az egyéb feladatoktól. Tehát itt ésszerű dolog egy előtérbeli feladat háttérbe helyezése. Annak érdekében, hogy folyamatot küld a háttérbe először meg kell akadályoznia, hogy az előtérben végrehajtsák. Ez egyszerűen megtehető a CTRL+Z billentyűkombinációval. Ezután a bg parancs beírásával a befejezett folyamat újraindul a háttérben. Az fg parancs megfordítja a folyamatot, és előtérbe hozza.
Folyamat állapota; Szintaxis, parancsok és a kimenet értelmezése
A hatékony folyamatkezeléshez Linuxban meg kell érteni a ps aux paranccsal felügyelhető folyamatok állapotát. Mielőtt azonban mélyebben belemerülnénk a ps aux parancsba, ismerkedjünk meg a különböző folyamatállapotokkal. Bár többféle folyamat és folyamatállapot létezik, itt van egy táblázat a leggyakoribbakról:
| Folyamat állapota | leírás | |
| Futás (R) | A folyamat jelenleg fut, és felveszi a CPU erőforrásait. | |
| Alvás | Megszakítható (S) | A folyamat arra vár, hogy egy adott bemenet vagy esemény újra elinduljon. Jelenleg nem használ CPU-erőforrásokat. Amikor az erőforrások rendelkezésre állnak, vagy jelzéseket kapnak, a folyamat újraindul. |
| Szünetmentes (D) | Csakúgy, mint a megszakítható alvó folyamatok, a megszakítás nélküli alvó folyamatok sem használnak CPU-erőforrásokat. Az egyetlen különbség az, hogy nem reagál a jelzésekre, csak akkor kel életre, ha rendelkezésre állnak az erőforrások. | |
| Megállt (T) | Egy felhasználói bevitel vagy egy adott esemény szüneteltette a folyamatot. A leállított állapotban lévő folyamat nem használ CPU erőforrásokat. | |
| Halott (X) | A folyamatot leállították, és már nem létezik. | |
A folyamatállapotok megfelelő ismerete elengedhetetlen a Linux rendszerek hatékony kezeléséhez és hibaelhárításához. Most nézzük meg a szintaxist és a parancsokat a folyamatállapot megszerzéséhez Linuxban, valamint a kimenet értelmezését.
Szintaxis és parancsok a folyamatállapot megszerzéséhez
A folyamat állapotát Linuxban a ps parancs alapvető szintaxisával kaphatja meg:
ps [process name]
Más opciók is használhatók a ps paranccsal:
aux: Ez az opció a rendszeren futó összes folyamat átfogó listáját jeleníti meg. Olyan információkat nyújt, mint a folyamatazonosítók (PID), a szülő folyamatazonosítók (PPID), a CPU- és memóriahasználat, valamint a folyamatállapotok. A ps aux parancs által biztosított kimenet sokkal rendezettebb, jobban olvasható, és sokkal több hasznos információt tartalmaz, mint az alap ps parancs.
ef: Ez az opció a folyamatok teljes formátumú listáját jeleníti meg extra részletekkel, beleértve a folyamathierarchiát, mint faszerű struktúrát.
l: Ez az opció egy hosszú listázási formátumot biztosít, amely részletesebb információkat tartalmaz a folyamatokról.
A kimenet megértése
Amikor a ps parancsot a kívánt beállításokkal végrehajtja, az egy kimenetet generál, amely a rendszeren jelenleg futó folyamatokat reprezentálja. A kimenet oszlopokból áll, amelyek különböző folyamatattribútumokat mutatnak, beleértve a folyamatazonosítót (PID), a szülő folyamatazonosítót (PPID), a CPU-használatot, a memóriahasználatot, a folyamat állapotát, a terminál típusát és a parancs nevét.
Íme annak magyarázata, hogy mit jelentenek ezek az oszlopok:
PID: Ez az oszlop a folyamat egyedi azonosítóját mutatja.
TTY: Ez az oszlop mutatja a terminál típusát, amelybe a felhasználó bejelentkezett.
IDŐ: Ez az oszlop azt mutatja, hogy mennyi CPU-t használ fel a folyamat percekben és másodpercekben.
CMD: Ez az oszlop a folyamatot elindító parancs nevét jelenti.
A ps parancs által szolgáltatott információk elemzése mélyebb betekintést nyújt a Linux-gép viselkedésébe.
Fejlett ps-technikák a folyamatkezeléshez a ps paranccsal
Fedezzük fel a ps parancs néhány speciális funkcióját, és azt, hogyan használhatók hatékonyan:
1. Folyamat rendezés
A ps aux paranccsal a végső kimenet különböző oszlopok alapján rendezhető. Például sorba rendezheti a folyamatokat folyamatazonosító vagy CPU-használat szerint, hogy a kívánt sorrendben jelenjenek meg.
Íme egy példa a folyamatok rendezésére a folyamatazonosító alapján a ps aux használatával:
ps aux –-sort pid
A head parancs csak a kimenet első öt sorának lekérésére szolgál.

2. Folyamatfa vizualizáció
Ha tisztán szeretné látni a folyamatok szülő-gyermek kapcsolatát, használhatja a ps parancsot a forest opcióval.
ps -aux --forest

A folyamatok közötti kapcsolat faszerű mintázatának megtekintéséhez használhatja a pstree parancsot is. Ez a parancs egy érthetőbb kimenetet hoz létre, és tökéletesen illusztrálja a folyamatok közötti hierarchiát. A parancs használatához írja be a következő parancsot:
pstree [pid or username]
Ha ennek a parancsnak PID-t ad, akkor azt mondja a parancsnak, hogy ezt a folyamatot tekintse a fa gyökerének.
3. Szűrési folyamatok
Képzelje el, hogy a folyamatok egy meghatározott csoportjával szeretne dolgozni; például az egyik felhasználó összes folyamatát szeretné felsorolni. A karakterisztikán alapuló szűrési folyamatok a ps paranccsal végezhetők el. Ebben a példában felhasználónév alapján szűrtük a folyamatokat.
ps -u [username]

A ps aux grep parancs pedig bármilyen minta vagy kulcsszó alapján szűrheti a folyamatokat, amelyeket a parancsnak megad. Példaként tekintse meg az alábbi kódot:

Ez a parancs először felsorolja az összes folyamatot, és a kimenetet átadja a grep parancsnak, hogy szűrje a hosszú listát a folyamatazonosító alapján. A fenti képen láthatja azon folyamatok listáját, amelyek információiban a 15-ös szám szerepel.
A ps paranccsal és képességeivel kapcsolatos további információkért olvassa el a parancs kézikönyvoldalát. Az alábbi kód megjeleníti a kézikönyv oldalát:
man ps
Feladatprioritás kezelése Linuxban
Annak érdekében, hogy jobban elmagyarázzuk, hogyan működik valójában a folyamatkezelés Linuxban, ki kell térnünk a folyamatprioritásra és annak megváltoztatására is. Képzeljen el egy olyan helyzetet, amelyben több folyamatot futtat, és a CPU túlterhelt feladatokkal. Ha azt szeretné, hogy erőforrásai megfelelően működjenek ebben a helyzetben, módosítania kell a futó feladatok prioritását. A Linuxban minden folyamatnak van prioritási értéke. Ez az érték segít a kernelnek a feladatok priorizálásában. A prioritási szám -20 és 19 között mozog, ahol a 19 a legkevésbé fontos feladat, a -20 pedig a legsürgősebb. A legmagasabb prioritású folyamat több CPU-időt kap a többi folyamathoz képest. A prioritási értékeket gyakran „szép” értékeknek nevezik, az alacsonyabb szép értékek pedig magasabb prioritást mutatnak.
Szép és renice parancsokkal hatékonyan oszthatja el a rendszererőforrásokat.
Mielőtt azonban megváltoztatnánk a folyamatok prioritását, vizsgáljuk meg a ps parancs első használati esetét.
- Az összes folyamat aktuális prioritásának megjelenítése a ps paranccsal:
Ez a parancs felsorolja az összes folyamatot a folyamatazonosítóikkal (PID), a parancsnevekkel és az aktuális prioritással (szép érték):
ps -eo pid,cmd,nice

- Alapértelmezés szerint magas prioritású folyamat indítása a nice paranccsal:
Ezzel a paranccsal elindíthat egy folyamatot a kívánt prioritással:
nice -n [priority] [command]
Cserélje ki a [prioritás] a kívánt negatív értékre, amely a prioritási szintet képviseli, a [command] helyére pedig a végrehajtani kívánt parancsot.
Íme egy példa:

- Egy már futó parancs prioritásának megváltoztatása:
renice -n [priority] -p [PID]
Cserélje ki a kezelni kívánt folyamat folyamatazonosítóját [PID]-re.
Ha egy nagy teljesítményű Linux gépet szeretne mindenféle feladat elvégzésére, a Linux VPS a legjobb megoldás az Ön számára. Cloudzy különféle Linux VPS-csomagokat kínál, amelyek előre telepítve vannak a kívánt disztribúcióban. A számos előnyös tulajdonsággal, mint például a 24 órás támogatás, a 30 napos pénz-visszatérítési politika és a 99,95%-os rendelkezésre állási garancia, a Cloudzynak sikerült alacsonyan tartania az árakat. A Linux VPS ára mindössze 4,95 USD/hónaptól indul.
Szerezzen be magának egy gazdaságos vagy prémium Linux VPS-t webhelye vagy távoli asztali üzemeltetéséhez a legolcsóbb áron. VPS Linux KVM-en fut a nagyobb hatékonyság érdekében, és nagy teljesítményű hardveren dolgozik NVMe SSD tárhellyel a nagyobb sebesség érdekében.
Olvasson továbbKövetkeztetés
Összefoglalva, a folyamatkezelés és a rendszervezérlés elsajátítása elengedhetetlen a rendszergazdáknak, a Linux-rajongóknak, akik többet szeretnének tanulni, és a rendszeres Linux-felhasználóknak. A ps parancs képességeinek és funkcióinak megismerése megkönnyítheti a tanulási folyamatok kezelését. Ez az oka annak, hogy ez a cikk a ps parancs fontos használati eseteit tárgyalja, valamint bemutatja az olvasóknak a Linux folyamatait.
GYIK
Mi a ps aux parancs Linuxban?
A ps aux Linux parancs egy általánosan használt parancs a Linuxban a futó folyamatokkal kapcsolatos információk megszerzésére. A folyamatok átfogó listáját nyújthatja felhasználóbarát formátumban, beleértve a folyamatazonosítóikat (PID), a CPU- és memóriahasználatot, a végrehajtási állapotokat és egyéb fontos részleteket.
Mi a kétféle folyamat a Linuxban?
Előtérbeli folyamatok és háttérfolyamatok. Az előtérbeli folyamatok lefoglalják a terminált futás közben, és nem tesznek lehetővé más végrehajtást. A háttérfolyamatok a háttérben futnak, és nem foglalják el az egész terminált.
Hogyan nézhetem meg a Linux rendszeremen futó folyamatok listáját?
A Linux rendszeren futó folyamatok listája olyan parancsokkal érhető el, mint a ps, top vagy htop. Például a Linux ps aux parancsa részletes információkat nyújt az összes futó folyamatról.