IHalloween kwiLinux: indlela yokubulala iinkqubo zombie

Isitampu seHalloween

Umhla wabafileyo uyeza yiyo loo nto ke sifuna ukwenza le nto incinci ye-LxA ukuze sithethe ngayo iinkqubo zombie kwaye singababulala njani. Into yokuqala oyithethayo yile nkqubo ye-zombie, kwaye yile yokuba uyazi, i-Linux kernel ine-subsystem yokulawula iinkqubo kwaye isebenza nomcwangcisi ukwenza, ukwahluka okuphambili, ukuthumela okanye ukususa ukuhamba kwe-CPU kunye iinkqubo zokubulala. Ewe, eli candelo le-kernel, njengezinye iinkqubo ezifana ne-Unix, lahlula phakathi kweenkqubo ezahlukeneyo zenkqubo ...

Ke sinokuyifumana loo nto inkqubo inokuba kwindawo yokulala (i), oko kukuthi, ilele. Iinkqubo ezikwimeko yokubaleka (R) ezo ziqhubayo ngoku okanye ziqhubayo, iinkqubo ezilindileyo (D) ezinqunyanyisiweyo zilinde ukubakho, ukubanjwa (T) okanye ukunqunyanyiswa, kunye neZombi (Z) okanye ezingasekhoyo. I-zombie okanye inkqubo efileyo yinto esele iphelisiwe ngempumelelo, kodwa inezinto ezithile zenkqubo ethathiweyo kuba iLinux isayigcina kwitafile yenkqubo. Sele uyazi ukuba xa inkqubo iphela, akufuneki ihlale kweli lizwe, kodwa iyagqibezela kwaye i-kernel ikhulule oovimba ukuze ezinye iinkqubo zikwazi ukuzisebenzisa, ngokusisiseko ikhulula i-RAM ...

Ewe, kuba akunomdla ukuba nolu hlobo lweenkqubo zombie, nangona zingahlali rhoqo, sinokuzikhangela kwaye siziphelise njengoko kubonisiwe apha. Into yokuqala kukufumanisa ukuba ngaba kukho iinkqubo zombie kwi-distro yethu kwaye sinokuzinceda izixhobo ezinjenge top okanye njenge ps. Umzekelo, enye yezi ndlela zimbini:

ps -el | grep 'Z'

ps aux | grep defunct

Kwaye xa sele ifunyenwe, sinako mbulale ngqo ne:

kill -HUP `ps -A -ostat,ppid,pid,cmd | grep -e ‘^[Zz]’ | awk ‘{print $2}’`

Nangona enye indlela kukufumana iinkqubo zomzali, ukusukela bulala inkqubo ye-zombie Kuya kufuneka ubulale iinkqubo zomzali eziyigcinayo, njengoko usenokuba ugqibe ekubeni:

ps -eo pid,ppid | grep <PID>

kill -9 <PPID>

Kuya kufuneka ubeke endaweni nge-ID yenkqubo ye-zombie oyifumeneyo kwaye uyibulale ngokubulala, sebenzisa i-ID yenkqubo yomzali ethatha indawo kumzekelo, ngokucacileyo.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Inoxanduva lwedatha: I-AB Internet Networks 2008 SL
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   iibhola ezenziwe sitsho

    Indawo elungileyo!
    Basoloko besikhupha engxakini.

    Apho ithi:
    Nangona enye indlela kukufumana iinkqubo zabazali, kuba ukubulala inkqubo ye-zombie kufuneka ubulale iinkqubo zomzali ezixhasayo, njengoko usenokuba uye wathatha isigqibo:

    1 | ps -eo pid, ppid | grep
    2|
    3 | bulala -9

    Kuya kufuneka ufake endaweni ye-ID yenkqubo ye-zombie oyifumene kwaye uyibulale ngokubulala, sebenzisa i-ID yenkqubo yomzali endaweni yomzekelo, ngokucacileyo.

    unokongeza umbhalo:

    $ ikati killppid.sh
    #! / bin / ibash
    ukubulala -9 $(ps -eo pid,ppid | awk '$1=='${1}' {print $2}')

    Ewe, ayingomsebenzi owenziwa ngumsebenzisi oqhelekileyo ngalo lonke ixesha.
    Kuya kuba luncedo kuphela kumlawuli, kodwa kuyingozi ukuyiqhuba njengengcambu, kuba inokubulala nayiphi na inkqubo kwinkqubo.

    Kumntu ukubulala kunale nqaku:

    AMANQAKU Iqokobhe lakho (itoliki yomgca womyalelo) inokuba nomyalelo owakhelwe-ngaphakathi wokubulala. Unga
    Kufuneka usebenzise umyalelo ochazwe apha njenge / bin / bulala ukusombulula impixano.

    I-Bash inaloo myalelo, le yinxalenye yomntu bash ngayo:

    ukubulala [-s sigspec | -n uphawu | -sigspec] [pid | jobspec]…
    ukubulala -l | -L [sigspec | phuma_isimo]
    Thumela umqondiso onikwe igama ngu sigspec okanye signum kwinkqubo ebizwa nge pid okanye umsebenzi
    spec. i-sigspec mhlawumbi ligama lophawu olungavaniyo njenge SIGKILL (kunye okanye
    ngaphandle kwesimaphambili SIG) okanye inombolo yomqondiso; isignum yinombolo yomqondiso. Ukuba
    i-sigspec ayikho, ngoko i-SIGTERM iyathathwa. Ingxoxo ka -l idwelisa i
    amagama omqondiso. Ukuba naziphi na iingxoxo zinikiwe xa -l inikiwe, amagama e
    Iimpawu ezihambelana neengxoxo zidweliswe, kwaye ubume bembuyekezo ngu-0.
    Impikiswano yesimo sokuphuma ku -l linani elichaza nokuba linani lomqondiso okanye
    ubume bokuphuma kwenkqubo epheliswe ngumqondiso. Ukhetho -L luyalingana
    ndiboleke ku -l. ukubulala ubuyisela yinyaniso ukuba uphawu olunye luthunyelwe ngempumelelo, okanye
    ayiyonyani ukuba kukho imposiso okanye ukhetho olungasebenziyo lufunyenwe.

    Ekuqaleni bachaza indlela i-bash ekhusela ngayo iinkqubo, ukunqanda ezinye iingxaki, kodwa akucaci kum ukuba ndingenza njani iskripthi esikhuselekileyo ukuba siqhube njengengcambu.
    Ekuphela kwento endinokuyicinga kukukhusela ngolu hlobo:

    $ ikati killppid.sh
    #! / bin / ibash
    ukuba [ $USER == "ingcambu"]
    emva koko i-echo Musa ukuqhuba i-$ 0 njengengcambu !!! kuyingozi!
    Phuma
    fi

    ukubulala -9 $(ps -eo pid,ppid | awk '$1=='${1}' {print $2}')

    $

    Sebenzisa ukubulala kwe-bash, hayi / umgqomo / ukubulala

    Undibona njani andiyazi kakuhle bash.
    Ngaba uyayazi indlela yokubhala okushicilelweyo okukhuselekileyo okusebenza njengomsebenzisi wenkqubo yomntwana, nokuba ibaleka njengengcambu?
    into elingana nento eza kwenziwa ngesandla ngolu hlobo:

    $ su;
    $ bulala -9 $(ps -eo pid,ppid | awk '$1=='${1}' {print $2}')