Zombių procesai

Skaityti įrašą iš gyvas Prisiminiau, kad forume kažkas paprašė pagalbos, nes jų sistema buvo lėta, kai kurie sprendimai buvo skirti procesams.

Pagrindinės „Linux“ procesų būsenos yra šios:
Miegas (S) : Procesai, kurie laukia savo eilės.
Bėgimas (R) : Vykdomi procesai.
Laukimas (D) : Procesai, laukiantys, kol bus baigta įėjimo / išėjimo operacija.
Zombis (Z) : Procesai, kurie baigėsi, bet ir toliau rodomi procesų lentelėje. Jas gali sukelti programavimo klaidos ir tai gali būti lėtos ar problemą sukeliančios sistemos simptomas.

„Zombie“ procesas yra tas, kuris niekada negavo signalo iš jį sukūrusio pirminio proceso, vaiko procesas yra tas, kuris kilo iš aukštesnio lygio proceso, žinomo kaip tėvų procesas, kuris yra atsakingas už signalų siuntimą generuojamiems vaiko procesams. tai rodo, kad jų gyvenimo trukmė baigėsi.

Jas gali sukelti programavimo klaidos ir tai gali būti lėtos ar problemą sukeliančios sistemos simptomas. Tokia situacija dažniausiai įvyksta ir dėl to, kad kūrėjas nepagalvojo apie tam tikrą konfigūraciją.

Vikipedijoje galite skaityti daugiau apie šiuos procesus.

Vykdydami viršutinę komandą, realiuoju laiku galime pamatyti sistemoje vykstančius procesus, ir tai parodys, ar jų yra zombių būsenoje, tačiau nenurodo, kuri iš jų yra.

procesas

Norėdami pamatyti visus procesus, įveskite terminalą: ps įir pamatyti tik zombius: ps -el | grep 'Z'o ps -A -ostatas, ppid, pid, cmd | grep -e '^ [Zz]'

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

Z 1945

Jei išvardijant procesus, rodomas statusas Z, tai reiškia, kad tai yra zombis, o tai savo ruožtu reiškia, kad programa nėra tinkamai išspręsta arba turi klaidų, žinant, kad jos PID galima pašalinti vykdant terminale komandą, panašią į , šiame pavyzdyje: 

alf @ Alf ~ $ nužudyti -9 1945

Kai turite daug zombių procesų arba bent kelis, galite naudoti šią komandą, kuri juos užmuša, tai veikia tik tuo atveju, jei paleisite ją be zombių procesų, nieko neįvyks:

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

saludos


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.

  1.   tinkamas sakė

    🙁

  2.   Oskaras sakė

    Ačiū, labai geras indėlis, aš išsaugosiu komandas, kad galėčiau periodiškai tikrinti.

  3.   Josh sakė

    Ačiū, gražus straipsnis.

  4.   MSX sakė

    Keli paaiškinimai dėl jūsų straipsnio:

    Terminas „Zombių procesas“ yra techniškai netinkamas ir tie iš mūsų, kurie turi mažai patirties su GNU / Linux, turėtų vengti jo naudoti, nes pats procesas nevyksta, tačiau tai tik nuoroda į procesą, kurio daugiau nėra. sistemoje ir jis nepaskelbė savo identifikatoriaus.

    „Zombių procesas“ iš tikrųjų yra proceso identifikatoriaus (proceso aprašo) įrašas atvaizdavimo lentelėje, tik tiek, kad jis nenaudoja išteklių, neviršijančių kelių baitų atminties, kuriuos sistema naudoja procesų lentelės stebėjimui.

    Vienintelė problema, kuri gali būti su vaiduoklių (arba zombių) registro deskriptoriais, yra ta, kad jei jie per greitai neršia, jie teoriškai galėtų užimti visą proceso aprašų paskirstymo lentelę, paliekant sistemą be vietos naujiems įrašams, todėl galbūt neįmanoma paleisti naujų programų - kurie įrašo jų procesus - galiausiai pakabino mašiną.

    Tačiau to padaryti beveik neįmanoma, nes 32 bitų sistemose yra 32767 tarpai procesams registruoti (retai ar niekada nenaudojami) ir dvigubai daugiau nei 64 bitų sistemoje.

    Vienintelis būdas padaryti sistemos avariją, kai negyvi procesai yra blogai pašalinti, yra sukurti procesus ir juos greitai užmušti, tinkamai neišvalant proceso aprašo (t. Y. Sukuriant „zombių procesus“), tačiau, pripažinkime, jei kas nors nori pakabinti yra daug tiesioginių būdų. greitai pradėti kurti naujus procesus eksponentiniu būdu, kuris užstrigtų sistemoje ir ją pakabintų; vienas iš būdų tai pasiekti naudojant šakės bombą:

    : () {: |: &};:

    Jei norite teisingai sukonfigūruoti /etc/security/limits.conf, sistemą galite padaryti palyginti atsparia šakės bombai, nors reikia atsižvelgti į tai, kad kuo labiau apribosime galimybę kurti naujus procesus, galėsime paleisti mažiau programų Tačiau tai yra tinkamas įrankis visiems paranojiškiems sysadminams, norintiems labai gerai kontroliuoti savo sistemas!

    Šiame straipsnyje yra gera informacija apie netinkamus proceso aprašus:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    Ir čia yra aiškus paaiškinimas, kaip veikia šakės bomba: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele sakė

      msx: «Terminas„ Zombių procesas “yra techniškai netinkamas ir tie iš mūsų, kurie turi mažai patirties su GNU / Linux, turėtų vengti jo naudoti ...» Ha ha ha. Yra tik kažkas didesnio už jūsų pasididžiavimą: jūsų blogas skonis. Ei, blogo skonio tai, ką tu padarei, jei norite skaityti paskaitą, pasimokyti fakultete arba parašyti savo tinklaraštį ir parašyti tai, ko norite, bet ateiti čia pataisyti buto į gerą Alfą yra tikrai blogo skonio .

      1.    Ferdinandas Rojas sakė

        Tiesa man pasirodė gana įdomus komentaras. Daug daugiau nei postas

  5.   platonovas sakė

    ačiū labai įdomu.

  6.   Puvimas87 sakė

    puikus straipsnis ačiū

  7.   Alf sakė

    MSX
    «Terminas„ Zombių procesas “yra techniškai netinkamas ir tie iš mūsų, kurie turi mažai GNU / Linux patirties, turėtų vengti jo vartoti»

    Turėsime apie tai pranešti kūrėjams, nes, kaip pamatysite, taip pat naudojamas zombių terminas, ten aš jį perskaičiau konsolėje.

    saludos

  8.   „Citux“ sakė

    Sveikiname, labai geras straipsnis, aš visada turėjau abejonių, kad jie yra PZ, bet aš niekada neturėjau laiko ištirti, dabar einu į puslapį ir aptikau atsakymą ačiū ...

  9.   truko22 sakė

    KDE su valdymu + pabėgimo sistema veikla išeina ir mes galime greitai nužudyti tuos zombius.

  10.   Lietus sakė

    Pataisymas - tai ZOMBIE, o ne ZOMBIE procesas
    „Zombie“ yra anglų kalba
    Zombi ispanų k

  11.   elynx sakė

    Prabangu, ačiū!

  12.   roberto sakė

    Pirma, terminas „zombių procesas“ atrodo visiškai teisingas. Šis terminas taip pat yra mažiausiai svarbus.
    Esmė ta, kad, kaip rodo „msx“, ir ta pati vikipedija (aš perskaičiau straipsnį) zombių procesas tikrai negyvas.
    «Kai procesas baigiasi, visa jo atmintis ir su ja susiję ištekliai yra nukreipiami, kad juos būtų galima naudoti kituose procesuose. Bet kokiu atveju proceso įrašas proceso lentelėje vis tiek išlieka »
    Tai reiškia, kad procesas nebenaudoja sistemos išteklių, todėl sistemos apkrova yra minimali, kaip paaiškinta msx.
    Tačiau vienintelis dalykas, kurį jis turi, yra neteisingas įrašas proceso lentelėje ... kuris, jei jų yra tūkstančiai, galbūt tai būtų apkrova (juk procesorius turi perskaityti proceso lentelę ir jis perskaitytų daug nenaudingos informacijos), be to, kad atspindi blogą programavimo praktiką (kažkas pateikia blogai parengtas programas).
    Bet pats savaime įrašo paaiškinimas nėra toks teisingas ir teisingas būtų tas, kurį pateikė msx.