Zombi proces. Nisu svi čuli za ovu zanimljivu, ali zastrašujuću riječ povezanu s operativnim sustavom Linux. Na osobnom računalu zombi procesi možda neće predstavljati prijetnju redovnom korisniku, ali kada je riječ o Linux poslužiteljima, ti procesi moraju se identificirati i zaustaviti.

Takvi procesi mogu uzrokovati probleme s tablicom procesa vašeg sustava, a zauzvrat će se miješati u pravilan rad vašeg stroja. Stoga ćemo u ovom članku detaljno razgovarati o zombi procesima, zajedno sa opsežnim vodičem o pronalaženju i ubijanju zombi procesa na Linux stroju.

Što su zombi procesi?

Ali prije svega toga, važno je da znate što su zapravo zombi procesi. To su ništa drugo do mrtvi i neaktivni procesi koji zauzimaju prostor na tablici sistemskih procesa. A blok za kontrolu procesa ili PCB je struktura podataka koja pohranjuje detalje povezane s pojedinačnim procesima koji se izvode u vašem sustavu.

Procesna tablica sastoji se od ID-a procesa, poveznice na PCB i ostalih korisnih informacija povezanih s postupkom. Zombi procesi imaju vlastite ID-ove procesa i informacije o upravljanju memorijom. Budući da Linux OS ima ograničen broj ID-ova procesa na raspolaganju, drugi procesi ne mogu koristiti PID-ove dok zombi proces ne prestane.

Iako jedan ili dva zombi procesa neće uzrokovati poremećaje ili probleme s performansama na vašem računalu, a veliki broj takvih procesa može naštetiti tijeku rada vašeg sustava preplavljivanjem tablice procesa i resursi.

Što uzrokuje zombi procese na Linuxu?

Da biste detaljno razumjeli osnovni uzrok zombi procesa, morat ćete naučiti kako se procesi pokreću i zaustavljaju u Linuxu. Linux operativni sustav nadgleda sve pokrenute procese i demone na računalu. The procesna tablica je popis struktura koji sadrži sve procese koji su trenutno pokrenuti na vašem stroju.

Svaki unos procesa u tablici procesa sastoji se od veze na blok za kontrolu procesa tog specifičnog procesa. PCB pohranjuje detalje povezane s tim određenim postupkom. Ti detalji uključuju:

  1. Stanje procesa: Trenutno stanje procesa
  2. Broj procesa: Jedinstveni broj koji se koristi za identificiranje procesa
  3. Brojač programa: Sadrži informacije povezane sa sljedećom uputom
  4. Registri: Popis svih CPU registara koje proces koristi
  5. Otvori popis datoteka: Datoteke koje postupak koristi
  6. Informacije o rasporedu CPU-a: Sadrži informacije povezane s procesorskim vremenom i resursima dodijeljenim procesu
  7. Informacije o upravljanju memorijom: Uključuje detalje o količini memorije koju proces koristi
  8. I / O informacije: Popis ulaznih ili izlaznih uređaja koji se koriste u procesu

Linux koristi sljedeća stanja procesa da bi opisao sve svoje procese.

  • R: Pokrenuti postupak
  • S: Proces spavanja
  • D: Neprekidan proces spavanja
  • T: Prekinuti postupak
  • Z: Zombi postupak

Kad god proces izvrši dodijeljeni zadatak, njegovo se stanje postavlja kao Zombi ili Z. Svaki proces ima nadređeni proces koji poziva obitelj imenovanih funkcija čekati() koja čeka promjenu stanja u procesu. Na primjer, ako se stanje procesa promijeni iz Trčanje do Zombi, čekati() aktivirat će se metoda.

The čekati() metoda obično briše kontrolni blok procesa koji se odnosi na taj zombi proces, a zatim uklanja unos tog procesa iz tablice procesa.

Ali ponekad, zbog lošeg razvoja programa, roditeljski proces ne zove čekati() funkcija. Kao rezultat toga, sustav ne briše PCB zombi procesa. Unos tablice procesa za taj određeni postupak također ostaje netaknut.

To zombi procesu daje beskrajan životni vijek. Budući da sustav ne može ubiti proces, unos procesa nikada se ne briše i PID se nikada ne oslobađa.

Saznajte više: Načini ubijanja neodgovarajućih programa u Linuxu

Kako pronaći zombi procese?

Prvi korak za uklanjanje zombi procesa na vašem sustavu je analiza koji proces ima Zombi stanje procesa. Iako nećete moći izravno ubiti te procese jer ih je sustav već uklonio iz memorije, možete ubiti nadređeni proces povezan s njima.

Prvo morate provjeriti ima li procesna tablica vašeg sustava zombi proces. To možete učiniti lako pomoću vrh naredba. Jednostavno otvorite terminal i upišite:

vrh

Vidjet ćete izlaz sličan ovom. Primijetite broj zombi procesa na vrhu prozora terminala. Ako je izlaz nula, onda se ne morate brinuti.

Cjevovodima možete navesti informacije povezane s tim zombi procesima naredba ps s egrep. Egrep je produžetak naredbe grep u Linuxu koja sve uzorke tretira kao prošireni niz regularnih izraza.

Povezano: Vodič za početnike za regularne izraze s Pythonom

Upišite sljedeću naredbu za popis svih zombi procesa:

ps pomoćni | egrep "Z | ugašen"

Spomenuta naredba tražit će retke koji sadrže bilo koji Z ili mrtav u izlazu generiranom naredbom ps. Rezultat se sastoji od popisa zombi procesa koji se izvode u vašem sustavu.

Ubijanje zombi procesa pomoću naredbe kill

Sad kad znate koji zombi procesi trenutno jedu resurse vašeg sustava, vrijeme je da te procese ubijete.

Iako je najlakši način ubijanja zombi procesa ponovnim pokretanjem računala, ponekad to nije izvediva opcija, pogotovo ako administrirate poslužitelj.

Da biste ubili zombi procese bez isključivanja poslužitelja, zabilježite ID procesa bilo kojeg zombi procesa. Iz prethodnog odjeljka možemo vidjeti da je PID zombi postupka bio 18614. Zatim pomoću ovog PID-a pronađite ID nadređenog procesa.

ps -o ppid = -p 18614

Izlaz:

18613

Provjerite postoji li nadređeni ID procesa pomoću p.s naredba.

ps -e | grep 18613

Sad kad smo potvrdili postojanje nadređenog postupka, vrijeme je da ga ubijemo. Prođi -POTPISI zastava s ubiti naredba kako slijedi:

sudo kill -SIGKILL 18613

Nakon što ubijete nadređeni proces, sustav će izbrisati zombi postupak i automatski ga ukloniti iz tablice procesa.

Učinkovito upravljanje procesima na Linuxu

Svaki administrator sustava mora dati prioritet nadzornim procesima koji se izvode na Linux računalu. Iako zombi procesi nisu nužno štetni za vaš sustav, oni mogu uzrokovati probleme s izvedbom ako postoje u velikom broju.

Ako ste početnik Linux korisnika i nemate pojma kako Linux operativni sustav upravlja procesima, naučiti koji su to procesi dobro je mjesto za početak.

E-mail
Što je proces u Linuxu?

Razumijevanje procesa i poslova ključni je aspekt upoznavanja Linuxa. Evo što trebate znati.

Pročitajte Dalje

Povezane teme
  • Linux
  • Linux
  • Obrada
O autoru
Deepesh Sharma (Objavljeno 45 članaka)

Deepesh je mlađi urednik za Linux u MUO. Na internetu piše informativni sadržaj više od 3 godine. U slobodno vrijeme uživa u pisanju, slušanju glazbe i sviranju gitare.

Više od Deepesh Sharme

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.