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.
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
🙁
Ačiū, labai geras indėlis, aš išsaugosiu komandas, kad galėčiau periodiškai tikrinti.
Ačiū, gražus straipsnis.
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
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 .
Tiesa man pasirodė gana įdomus komentaras. Daug daugiau nei postas
ačiū labai įdomu.
puikus straipsnis ačiū
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
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ū ...
KDE su valdymu + pabėgimo sistema veikla išeina ir mes galime greitai nužudyti tuos zombius.
Pataisymas - tai ZOMBIE, o ne ZOMBIE procesas
„Zombie“ yra anglų kalba
Zombi ispanų k
Prabangu, ačiū!
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.