Zombi folyamatok

Bejegyzés olvasása innen: élénk Eszembe jutott, hogy egy fórumban valaki segítséget kért, mivel a rendszere lassú volt, néhány megoldás a folyamatokra összpontosított.

A folyamatok főbb állapotai a Linuxban a következők:
Alvás (S) : Folyamatok, amelyek sorra várnak a végrehajtásra.
Futás (R) : Futtatott folyamatok.
Várakozás (D) : A Belépés / Kilépés művelet befejezésére váró folyamatok.
Zombi (Z) : A folyamatok, amelyek befejeződtek, de továbbra is megjelennek a folyamat táblázatban. Ezeket programozási hibák okozhatják, és a lassú vagy problémákat okozó rendszer tünetei lehetnek.

A zombi folyamat olyan folyamat, amely soha nem kapott jelet az őt létrehozó szülői folyamattól, a gyermek folyamat az, amely egy magasabb szintű folyamatból származik, amelyet szülői folyamatnak neveznek, és amely felelős a jelek továbbításáért a gyermek folyamatai felé. generálja annak jelzésére, hogy élettartama lejárt.

Ezeket programozási hibák okozhatják, és a lassú vagy problémákat okozó rendszer tünetei lehetnek. Ez a helyzet általában azért fordul elő, mert valamilyen konfigurációt nem gondolt a fejlesztő.

A Wikipédiában megteheti tovább ezekről a folyamatokról.

A legfelső parancs végrehajtásával valós időben láthatjuk a rendszerben végrehajtott folyamatokat, és jelzi, hogy vannak-e zombi állapotban, de nem jelzi, hogy melyikről van szó.

folyamat

Az összes folyamat megtekintéséhez írja be a terminált: ps to, és csak a zombikat látni: ps -el | grep 'Z'o ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

alf @ Alf ~ $ ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]'

Z 1945

Ha a folyamatok felsorolásakor az egyik Z státusszal jelenik meg, az azt jelenti, hogy egy zombi, ami viszont azt jelenti, hogy az alkalmazás nincs megfelelően megoldva vagy hibákat tartalmaz, tudva, hogy PID-jét ki lehet küszöbölni, ha a terminálban végrehajtunk egy hasonló parancsot, ebben a példában: 

alf @ Alf ~ $ ölni -9 1945

Ha sok zombi folyamatod van, vagy legalább egynél több, használhatod a következő parancsot, amely megöli őket, ez csak akkor működik, ha zombi folyamatok nélkül futtatod, semmi sem fog történni:

alf @ Alf ~ $ sudo kill -HUP `ps -A -ostat, ppid, pid, cmd | grep -e '^ [Zz]' | awk '{print $ 2}' ''

Üdvözlet


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   megfelelő dijo

    🙁

  2.   Oscar dijo

    Köszönöm, nagyon jó közreműködéssel, menteni fogom a parancsokat, hogy rendszeresen ellenőrizhessem őket.

  3.   Megtréfál dijo

    Köszönöm, szép cikk.

  4.   MSX dijo

    Néhány pontosítás a cikkeddel kapcsolatban:

    A "Zombie process" kifejezés technikailag nem megfelelő, és azoknak, akiknek van egy kis tapasztalatuk a GNU / Linux-ról, kerülniük kell a használatát, mivel önmagában nincs folyamat, de ez csak egy olyan folyamatra való hivatkozás, amely már nem létezik a rendszerben és nem adta ki az azonosítóját.

    A "zombi folyamat" valójában a folyamatazonosító (folyamatleíró) bejegyzése a leképezési táblában, éppen ez, így nem fogyaszt erőforrásokat néhány bájt memórián túl, amelyet a rendszer a folyamattábla nyomon követésére használ.

    Az egyetlen probléma, amely a ghost (vagy zombie) rendszerleíró leírókkal lehet, az, hogy ha ezek túl gyorsan szaporodnak, akkor elméletileg elfoglalhatják a teljes folyamatleíró kiosztási táblázatot, így a rendszer új helyek nélkül marad, így potenciálisan lehetetlen új programokat futtatni - amelyek rögzítik a folyamataikat - végül leteszik a gépet.

    Erre azonban szinte lehetetlen kerülni, mivel a 32 bites rendszerekben 32767 64 szóköz áll rendelkezésre a folyamatok (ritkán vagy soha nem használt) regisztrálásához, és ennek kétszerese egy XNUMX bites rendszerben.

    Az egyetlen módja a rendszer összeomlásának a rosszul eltávolított halott folyamatokkal: a folyamatok létrehozása és gyors megölése a folyamatleíró megfelelő tisztítása nélkül (vagyis "zombi folyamatok" létrehozása), de valljuk be, ha valaki össze akar ütni sokkal közvetlenebb módok léteznek ennél. gyorsan elkezdeni új folyamatokat létrehozni exponenciális módon, amelyek elzárják a rendszert és felakasztják; ennek egyik módja villabombával:

    : () {: |: &};:

    Az /etc/security/limits.conf fájl megfelelő beállításával teheti a rendszert viszonylag ellenállóvá egy villabomba ellen, bár figyelembe kell venni, hogy minél inkább korlátozzuk az új folyamatok létrehozásának lehetőségét, kevesebb alkalmazást tudunk majd futtatni egyidejűleg a rendszerünkön. Ez azonban érvényes eszköz minden paranoid sziszadmin számára, aki nagyon finom irányítást akar a rendszere felett!

    Ez a cikk jó információkat tartalmaz az érvénytelen folyamatleírókról:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    És ebben egyértelmű magyarázat található a villabomba működéséről: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele dijo

      msx: «A„ zombi folyamat ”kifejezés technikailag nem megfelelő, és azoknak, akiknek van egy kis tapasztalatuk a GNU / Linux használatával kapcsolatban, kerülni kell a használatát ...» Ha ha ha. Csak valami nagyobb, mint a büszkeséged: a rossz ízlésed. Hé, rossz ízlésű, amit tettél, ha előadást akarsz tartani, bekerülni a karra, vagy felvenni a saját blogodat, és megírni, amit akarsz, de azért jön ide, hogy helyreigazítsa a lakást jó Alf-re .

      1.    Ferdinánd Rojas dijo

        Az igazság számomra elég érdekes megjegyzésnek tűnt. Sokkal többet, mint a poszt

  5.   platonov dijo

    nagyon érdekes köszönöm.

  6.   rots87 dijo

    kiváló cikk köszönöm

  7.   Alf dijo

    MSX
    "A" zombi folyamat "kifejezés technikailag nem megfelelő, és azoknak, akiknek van egy kis tapasztalatuk a GNU / Linux-ban, kerülni kell a használatát»

    Értesítenünk kell a fejlesztőket, mivel mint látni fogják, a zombi kifejezést is használják, ott olvastam a konzolon.

    Üdvözlet

  8.   Város dijo

    Gratulálok, nagyon jó cikk, mindig is kételkedtem abban, hogy ők a PZ-k, de soha nem volt időm kivizsgálni, most megyek az oldalra, és köszönetet találok a válasznak ...

  9.   truko22 dijo

    A KDE-ben a vezérlés + menekülési rendszer tevékenységei kialszanak, és gyorsan meg tudjuk ölni ezeket a zombikat.

  10.   Eső dijo

    Javítás, ez egy ZOMBIE, nem egy ZOMBIE folyamat
    A Zombie angolul szól
    Zombi spanyolul

  11.   elynx dijo

    Luxus, köszönöm!

  12.   Roberto dijo

    Először is, a zombi folyamat kifejezés teljesen helyesnek tűnik. A kifejezés is a legkevésbé fontos.
    A lényeg az, hogy amint az msx jelzi, és ugyanaz a wikipédia (olvastam a cikket), a zombi folyamat valóban halott.
    «Amikor egy folyamat véget ér, az összes memória és a hozzá tartozó erőforrások el lesznek hivatkozva, így más folyamatok is felhasználhatják őket. Egyébként a folyamattábla folyamatbejegyzése továbbra is megmarad »
    Vagyis a folyamat már nem foglalja el a rendszer erőforrásait, ezért a rendszer terhelése minimális, amint azt az msx magyarázza.
    Az egyetlen dolog azonban, hogy érvénytelen bejegyzés van a folyamattáblában ... ami, ha több ezer van belőle, talán terhelés lenne (elvégre a processzornak el kell olvasnia a folyamattáblát, és egy sok haszontalan információ) a rossz programozási gyakorlatok tükrözése mellett (valaki rosszul elkészített alkalmazásokat készít).
    De önmagában a hozzászólás magyarázata nem annyira helytálló, és a helyes lenne az msx által adott.