Proceset e zombies

Leximi i një shënimi nga i gjallë Mbaj mend që në një forum dikush kërkoi ndihmë pasi sistemi i tyre ishte i ngadaltë, disa nga zgjidhjet u përqëndruan në procese.

Gjendjet kryesore të proceseve në Linux janë:
Fjetur (S) : Proceset që janë duke pritur radhën e tyre për t'u ekzekutuar.
Vrapimi (R) : Proceset që po ekzekutohen.
Në pritje (D) : Proceset në pritje të një operacioni Hyrje / Dalje për të përfunduar.
Mumje (z) : Proceset që kanë përfunduar por vazhdojnë të shfaqen në tabelën e proceseve. Ato mund të shkaktohen nga gabime të programimit dhe mund të jenë simptomë e një sistemi të ngadaltë ose që shkakton probleme.

Një proces Zombie është ai që nuk ka marrë kurrë një sinjal nga procesi prind që e ka krijuar atë, një proces i fëmijës është ai që e ka zanafillën në një proces të nivelit më të lartë të njohur si procesi prind që është përgjegjës për dërgimin e sinjaleve tek proceset e fëmijëve të gjeneruara nga për të treguar që jeta e tyre ka përfunduar.

Ato mund të shkaktohen nga gabime të programimit dhe mund të jenë simptomë e një sistemi të ngadaltë ose që shkakton probleme. Kjo situatë zakonisht ndodh, edhe për shkak se disa konfigurime nuk janë menduar nga zhvilluesi i saj.

Në Wikipedia mundeni Lexo më shumë në lidhje me këto procese.

Ekzekutimi i komandës së lartë mund të shohim në kohë reale proceset që ekzekutohen në sistem, dhe kjo do të tregojë nëse ka ndonjë në një gjendje zombie, por nuk tregon se cila është.

proces

Për të parë të gjitha proceset, shkruani në terminal: ps te, dhe për të parë vetëm zombies: 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

Nëse kur renditni proceset, dikush shfaqet me një status Z, kjo do të thotë se është një zombie, që do të thotë se aplikacioni nuk është zgjidhur mirë ose ka gabime, duke ditur që PID-i i tij mund të eliminohet duke ekzekutuar në terminal një komandë të ngjashme në, në këtë shembull: 

alf @ Alf $ vrasin -9 1945

Kur keni shumë procese zombie ose të paktën më shumë se një, mund të përdorni komandën e mëposhtme që i vret, funksionon vetëm për këtë, nëse e drejtoni pa pasur procese zombie asgjë nuk do të ndodhë:

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

të fala


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   i duhur dijo

    🙁

  2.   Oscar dijo

    Faleminderit, kontribut shumë i mirë, do të kursej komandat për të bërë verifikime periodike.

  3.   Ngas dijo

    Faleminderit, artikull i bukur.

  4.   MSX dijo

    Disa sqarime në lidhje me artikullin tuaj:

    Termi "Procesi Zombie" është teknikisht i papërshtatshëm dhe ata prej nesh që kanë pak përvojë me GNU / Linux duhet të shmangin përdorimin e tij pasi që nuk ka asnjë proces që funksionon në vetvete por është vetëm një referencë për një proces që nuk ekziston më në sistem dhe ai nuk e lëshoi ​​identifikuesin e tij.

    Një "proces zombie" është në të vërtetë hyrja në tabelën e hartëzimit të identifikuesit të procesit (përshkruesi i procesit), pikërisht kjo, kështu që nuk konsumon burime përtej disa bajtëve të kujtesës që sistemi përdor për të mbajtur nën kontroll tabelën e procesit.

    Problemi i vetëm që mund të ketë me përshkruesit e regjistrit fantazmë (ose zombie) është se nëse pjellin shumë shpejt ata teorikisht mund të zënë të gjithë tabelën e alokimit të përshkruesit të procesit duke e lënë sistemin pa hapësirë ​​për rekorde të reja kështu që potencialisht do të ishte e pamundur të ekzekutohen programe të reja - që regjistrojnë proceset e tyre - përfundimisht duke e varur makinerinë.

    Sidoqoftë, kjo është pothuajse e pamundur të ndodhë pasi që në sistemet 32-bitëshe ekzistojnë 32767 hapësira për të regjistruar proceset (rrallë ose kurrë nuk përdoren) dhe dy herë më shumë se në një sistem 64-bitësh.

    Mënyra e vetme për të bërë një përplasje të sistemit me procese të vdekura të hequra keq është krijimi i proceseve dhe vrasja e tyre shpejt pa pastrimin e saktë të përshkruesit të procesit (domethënë krijimin e "proceseve të zombies") por, le ta pranojmë, nëse dikush dëshiron të varet një sistemi ka mënyra shumë më të drejtpërdrejta se kaq. për të filluar krijimin e proceseve të reja shpejt në një mënyrë eksponenciale që bllokojnë sistemin dhe e varin atë; një nga mënyrat për ta arritur këtë me një bombë piruni:

    : () {: |: &};:

    Ju mund ta bëni sistemin relativisht rezistent ndaj një bombe piruni duke konfiguruar /etc/security/limits.conf në mënyrë korrekte, megjithëse duhet të merret parasysh që sa më shumë të kufizojmë mundësinë e krijimit të proceseve të reja, do të jemi në gjendje të ekzekutojmë më pak aplikacione njëkohësisht në sistemin tonë. Sidoqoftë, është një mjet i vlefshëm për të gjithë sysadmin paranojakë që duan të kenë kontroll shumë të mirë mbi sistemet e tyre!

    Ky artikull ka informacion të mirë për përshkruesit e pavlefshëm të procesit:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    Dhe në këtë ka një shpjegim të qartë se si funksionon një bombë pirun: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele dijo

      msx: «Termi" Procesi Zombie "është teknikisht i papërshtatshëm dhe ata prej nesh që kanë pak përvojë me GNU / Linux duhet të shmangin përdorimin e tij ...» Ha ha ha. Ka vetëm diçka më të madhe se krenaria juaj: shija juaj e keqe. Hej, ajo që keni bërë është me shije të keqe, nëse doni të mbani një leksion, merrni një në fakultet, ose vendosni blogun tuaj dhe shkruani çfarë të doni, por ardhja këtu për të korrigjuar banesën në Alf të mirë është me të vërtetë me shije të keqe .

      1.    Ferdinand Rojas dijo

        E vërteta më dukej një koment mjaft interesant. Shumë më tepër sesa postimi

  5.   platonov dijo

    faleminderit shum interesante.

  6.   kalbet87 dijo

    artikull i shkelqyer faleminderit

  7.   Alf dijo

    MSX
    «Termi" Procesi Zombie "është teknikisht i papërshtatshëm dhe ata prej nesh që kanë pak përvojë në GNU / Linux duhet të shmangin përdorimin e tij"

    Ne do të duhet të njoftojmë zhvilluesit, pasi siç do ta shihni, përdoret edhe termi zombie, atje e lexova në tastierë.

    të fala

  8.   Qyteti dijo

    Urime, artikull shumë i mirë, gjithnjë kisha dyshime se ishin PZ por nuk kisha pasur kurrë kohë për të hetuar, tani shkoj në faqe dhe përgjigjem faleminderit thanks.

  9.   truko22 dijo

    Në KDE me kontroll + aktivitetet e sistemit të ikjes shuhen dhe ne mund t'i vrasim ato zombie shpejt.

  10.   Shi dijo

    Një korrigjim, është një proces ZOMBI jo ZOMBIE
    Zombie është në anglisht
    Zombi në spanjisht

  11.   elynks dijo

    Luksoze, faleminderit!

  12.   Roberto dijo

    Së pari, termi proces zombie duket plotësisht i saktë. Gjithashtu termi është më pak i rëndësishëm.
    Çështja është që siç tregon msx, dhe e njëjta Wikipedia (kam lexuar artikullin) procesi i zombies ka vdekur vërtet.
    «Kur ​​një proces mbaron, e gjithë kujtesa dhe burimet e tij të lidhura me të janë referuar, në mënyrë që ato të mund të përdoren nga procese të tjera. Sidoqoftë, hyrja e procesit në tabelën e procesit ende mbetet »
    Kjo do të thotë, procesi nuk po merr më burime të sistemit, prandaj ngarkesa në sistem është minimale, siç shpjegohet nga msx.
    Sidoqoftë, e vetmja gjë që ka është një hyrje e pavlefshme në tabelën e procesit ... e cila, nëse ka mijëra prej tyre, mbase do të ishte një ngarkesë (në fund të fundit, procesori duhet të lexojë tabelën e procesit dhe do të lexonte një shumë informacione të padobishme) përveç që pasqyrojnë praktika të këqija programimi (dikush po bën aplikime të bëra keq).
    Por në vetvete shpjegimi i postimit nuk është aq i saktë dhe i saktë do të ishte ai i dhënë nga msx.