Zombie-prosessit

Luetaan merkintää osoitteesta vilkas Muistin, että foorumissa joku pyysi apua, koska heidän järjestelmänsä oli hidas, jotkut ratkaisut keskittyivät prosesseihin.

Linuxin prosessien päätilat ovat:
Nukkuminen (S) : Prosessit, jotka odottavat vuoronsa suorittamista.
Juoksu (R) : Käynnissä olevat prosessit.
Odottaa (D) : Prosessit, jotka odottavat sisääntulo- / poistumistoiminnon valmistumista.
Zombie (Z) : Prosessit, jotka ovat päättyneet, mutta näkyvät edelleen prosessitaulukossa. Ne voivat johtua ohjelmointivirheistä ja voivat olla oireita hidasta tai ongelmia aiheuttavasta järjestelmästä.

Zombie-prosessi on prosessi, joka ei koskaan saanut signaalia sen luoneelta vanhemmalta prosessilta, lapsiprosessi on prosessi, jonka alkuperä on korkeamman tason prosessi, joka tunnetaan vanhempana prosessina ja joka on vastuussa signaalien lähettämisestä aliprosesseihin. se on osoittanut, että sen käyttöikä on päättynyt

Ne voivat johtua ohjelmointivirheistä ja voivat olla oireita hidasta tai ongelmia aiheuttavasta järjestelmästä. Tämä tilanne esiintyy yleensä myös siksi, että kehittäjä ei harkinnut tiettyä kokoonpanoa.

Wikipediassa voit lue lisää näistä prosesseista.

Suorittamalla ylimmän komennon voimme nähdä reaaliajassa prosessit, jotka ovat käynnissä järjestelmässä, ja se osoittaa, onko niitä zombietilassa, mutta se ei osoita kumpi on.

prosessi

Näet kaikki prosessit kirjoittamalla päätelaitteeseen: ps auxja nähdä vain zombeja: ps -el | grep 'Z'o ps -A -staatti, ppid, pid, cmd | grep -e '^ [Zz]'

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

Z 1945

Jos luetellessasi prosesseja yksi näkyy Z-tilassa, se tarkoittaa, että se on zombie, mikä puolestaan ​​tarkoittaa, että sovellusta ei ole ratkaistu kunnolla tai siinä on virheitä, tietäen, että sen PID voidaan poistaa suorittamalla terminaalissa samanlainen komento kuin tässä esimerkissä: 

alf @ Alf ~ $ tappaa -9 1945

Kun sinulla on useita zombie-prosesseja tai ainakin useita, voit käyttää seuraavaa komentoa, joka tappaa heidät, se toimii vain siinä, jos suoritat sen ilman zombie-prosesseja, mitään ei tapahdu:

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

terveiset


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   asianmukainen dijo

    🙁

  2.   oscar dijo

    Kiitos, erittäin hyvä panos, aion tallentaa komennot tekemään säännöllisiä tarkistuksia.

  3.   Josh dijo

    Kiitos, mukava artikkeli.

  4.   MSX dijo

    Muutama selvitys artikkelistasi:

    Termi "Zombie-prosessi" on teknisesti sopimaton, ja niiden meistä, joilla on vähän kokemusta GNU / Linuxista, tulisi välttää sen käyttöä, koska prosessia ei itsessään ole käynnissä, mutta se on vain viittaus prosessiin, jota ei enää ole olemassa järjestelmää, eikä hän julkaissut tunnusta.

    "Zombie-prosessi" on itse asiassa prosessitunnisteen (prosessikuvaaja) merkintä kartoitustaulukkoon, juuri niin, joten se ei kuluta resursseja, jotka ylittävät muutaman tavun muistin, jota järjestelmä käyttää prosessitaulukon seuraamiseen.

    Ainoa ongelma, joka voi olla haamu (tai zombie) -rekisterikuvaajien kanssa, on se, että jos nämä kutevat liian nopeasti, he voivat teoriassa käyttää koko prosessikuvaajien allokointitaulukkoa, jättäen järjestelmän ilman tilaa uusille tietueille, joten se olisi mahdollisesti mahdotonta suorittaa uusia ohjelmia, jotka tallentavat prosessinsa, lopulta ripustaa kone.

    Tätä on kuitenkin melkein mahdotonta tapahtua, koska 32-bittisissä järjestelmissä on 32767 välilyöntiä prosessien rekisteröimiseksi (harvoin tai ei koskaan käytetty) ja kaksinkertainen määrä 64-bittisessä järjestelmässä.

    Ainoa tapa saada järjestelmä kaatumaan, kun kuolleet prosessit on poistettu huonosti, on luoda prosessit ja tappaa ne nopeasti puhdistamatta prosessikuvaajaa (eli luomalla "zombiprosesseja"), mutta tunnustetaan tosin, jos joku haluaa ripustaa järjestelmässä on paljon suorempia tapoja. aloittaa uusien prosessien luominen nopeasti eksponentiaalisella tavalla, joka häiritsee järjestelmää ja ripustaa sen; yksi tapa saavuttaa tämä haarukkapommilla:

    : () {: |: &};:

    Voit tehdä järjestelmästä suhteellisen vastustuskykyisen haarukkapommille määrittämällä /etc/security/limits.conf oikein, vaikka onkin otettava huomioon, että mitä enemmän rajoitamme uusien prosessien luomisen mahdollisuutta, voimme käyttää vähemmän sovelluksia samanaikaisesti järjestelmässämme. Se on kuitenkin pätevä työkalu kaikille paranoidisille sysadmineille, jotka haluavat hallita järjestelmiä erittäin hyvin!

    Tässä artikkelissa on hyviä tietoja virheellisistä prosessikuvaajista:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    Ja tässä on selkeä selitys haarukkapommin toiminnasta: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele dijo

      msx: «Termi" Zombie-prosessi "on teknisesti sopimaton, ja niiden meistä, joilla on vähän kokemusta GNU / Linuxista, tulisi välttää sen käyttöä ...» Ha ha ha. On vain jotain suurempaa kuin ylpeytesi: huono makusi. Hei, mitä teit, on huono maku, jos haluat pitää luennon, hankkia sen tiedekunnassa tai laittaa oman blogisi ja kirjoittaa mitä haluat, mutta tänne korjaamaan asunto hyvään Alfiin on todella huono maku .

      1.    Ferdinand Rojas dijo

        Totuus tuntui minusta melko mielenkiintoiselta kommentilta. Paljon enemmän kuin viesti

  5.   platonov dijo

    kiitos erittäin mielenkiintoisesta.

  6.   Mätät87 dijo

    erinomainen artikkeli kiitos

  7.   Alf dijo

    MSX
    "Termi" Zombie-prosessi "on teknisesti sopimaton, ja niiden meistä, joilla on vähän kokemusta GNU / Linuxista, tulisi välttää sen käyttöä"

    Meidän on ilmoitettava siitä kehittäjille, koska kuten näette, käytetään myös termiä zombie, luin sen konsolista.

    terveiset

  8.   Kaupunki dijo

    Onnittelut, erittäin hyvä artikkeli, minulla oli aina ollut epäilyksiä siitä, että he olivat PZ: itä, mutta minulla ei ollut koskaan ollut aikaa tutkia, menen nyt sivulle ja törmän vastaukseen kiitos ...

  9.   truko22 dijo

    KDE: ssä, jossa on ohjaus + paeta, toiminta poistuu ja voimme tappaa nuo zombit nopeasti.

  10.   Sade dijo

    Korjaus, se on ZOMBIE, ei ZOMBIE-prosessi
    Zombie on englanti
    Zombi espanjaksi

  11.   elynx dijo

    Ylellinen, kiitos!

  12.   Roberto dijo

    Ensinnäkin termi zombie-prosessi näyttää täysin oikealta. Myös termi on vähiten tärkeä.
    Asia on, että kuten msx osoittaa, ja sama wikipedia (luin artikkelin) zombie-prosessi on todella kuollut.
    «Kun prosessi on valmis, kaikki sen muisti ja siihen liittyvät resurssit estetään, jotta muut prosessit voivat käyttää niitä. Joka tapauksessa prosessitaulukon prosessimerkintä pysyy edelleen »
    Toisin sanoen prosessi ei enää vie järjestelmäresursseja, joten järjestelmän kuormitus on minimaalinen, kuten msx selittää.
    Ainoa asia, joka sillä on, on virheellinen merkintä prosessitaulukossa ... joka, jos niitä on tuhansia, ehkä se olisi kuorma (prosessorin on loppujen lopuksi luettava prosessitaulukko ja se lukisi paljon hyödytöntä tietoa) huonojen ohjelmointikäytäntöjen lisäksi (joku tekee huonosti tehtyjä sovelluksia).
    Mutta itsessään viestin selitys ei ole niin oikea ja oikea olisi se, jonka msx antaa.