Zombiju procesi

Lasot ierakstu no dzīvīgs Es atcerējos, ka forumā kāds lūdza palīdzību, jo viņu sistēma bija lēna, daži no risinājumiem bija vērsti uz procesiem.

Galvenie Linux procesu stāvokļi ir:
Miega režīms (S) : Procesi, kas gaida savu kārtu, lai tos izpildītu.
Skriešana (R) : Procesi, kas darbojas.
Gaida (D) : Procesi, kas gaida ieejas / izejas darbības pabeigšanu.
Zombijs (Z) : Procesi, kas ir beigušies, bet turpina parādīties procesu tabulā. Tās var izraisīt programmēšanas kļūdas un var būt lēnas vai problēmu izraisošas sistēmas simptoms.

Zombiju process ir tāds, kas nekad nav saņēmis signālu no vecāku procesa, kas to radījis, bērna process ir tāds, kura izcelsme ir augstāka līmeņa procesā, kas pazīstams kā vecāku process, kurš ir atbildīgs par signālu nosūtīšanu bērna procesiem, ko ģenerējis tas norāda, ka viņu dzīves ilgums ir beidzies.

Tās var izraisīt programmēšanas kļūdas un var būt lēnas vai problēmu izraisošas sistēmas simptoms. Šī situācija parasti rodas arī tāpēc, ka izstrādātājs neuzskatīja kādu konfigurāciju.

Vikipēdijā jūs varat lasīt vairāk par šiem procesiem.

Izpildot augšējo komandu, mēs reāllaikā varam redzēt procesus, kas darbojas sistēmā, un tas norādīs, vai tādi ir zombiju stāvoklī, taču tas nenorāda, kurš no tiem ir.

process

Lai skatītu visus procesus, ierakstiet terminālā: ps auxun redzēt tikai zombijus: ps -el | grep 'Z'o ps -A -ostats, ppid, pid, cmd | grep -e '^ [Zz]'

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

Z 1945

Ja, uzskaitot procesus, parādās viens ar Z statusu, tas nozīmē, ka tas ir zombijs, kas savukārt nozīmē, ka lietojumprogramma nav labi atrisināta vai tajā ir kļūdas, zinot, ka tās PID var novērst, izpildot komandu, kas līdzīga, terminālā, šajā piemērā: 

alf @ Alf ~ $ nogalināt -9 1945

Ja jums ir daudz zombiju procesu vai vismaz vairāki, varat izmantot šādu komandu, kas tos nogalina, tas darbojas tikai šajā nolūkā, ja jūs to palaižat bez zombiju procesiem, nekas nenotiks:

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

Sveicieni


14 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   pienācīgs teica

    🙁

  2.   oscar teica

    Paldies, ļoti labs ieguldījums, es saglabāšu komandas, lai veiktu periodiskas pārbaudes.

  3.   Izzobot teica

    Paldies, jauks raksts.

  4.   MSX teica

    Pāris skaidrojumi par jūsu rakstu:

    Termins "Zombiju process" ir tehniski nepiemērots, un tiem no mums, kuriem ir neliela pieredze ar GNU / Linux, vajadzētu izvairīties no tā izmantošanas, jo pats par sevi process nedarbojas, bet tā ir tikai atsauce uz procesu, kas vairs nepastāv sistēmā, un viņš neatklāja savu identifikatoru.

    "Zombiju process" faktiski ir procesa identifikatora (procesa deskriptora) ieraksts kartēšanas tabulā, tikai tas, tāpēc tas nelieto resursus, kas pārsniedz dažus baitus atmiņas, ko sistēma izmanto procesu tabulas izsekošanai.

    Vienīgā problēma, kas var būt ar spoku (vai zombiju) reģistra deskriptoriem, ir tāda, ka, pārāk ātri nārstojot, viņi teorētiski varētu aizņemt visu procesa deskriptoru piešķiršanas tabulu, atstājot sistēmu bez vietas jauniem ierakstiem, tāpēc potenciāli nebūtu iespējams palaist jaunas programmas - kas pieraksta viņu procesus - galu galā iekārto mašīnu.

    Tomēr tas ir gandrīz neiespējami, jo 32 bitu sistēmās ir 32767 64 vietas, lai reģistrētu procesus (reti vai nekad neizmanto), un divreiz vairāk nekā XNUMX bitu sistēmā.

    Vienīgais veids, kā padarīt sistēmas avāriju ar slikti noņemtiem mirušajiem procesiem, ir procesu izveidošana un ātra nogalināšana, pareizi neiztīrot procesa deskriptoru (tas ir, izveidojot "zombiju procesus"), bet, pieņemsim to atzīt, ja kāds vēlas pakārt sistēmā ir daudz tiešāki veidi. ātri sākt veidot jaunus procesus eksponenciālā veidā, kas iestrēgst sistēmā un pakārto to; viens no veidiem, kā to panākt ar dakšu bumbu:

    : () {: |: &};:

    Jūs varat padarīt sistēmu samērā izturīgu pret dakšas bumbu, pareizi konfigurējot /etc/security/limits.conf, lai gan jāņem vērā, ka jo vairāk mēs ierobežosim iespēju izveidot jaunus procesus, mēs varēsim palaist mazāk lietojumprogrammu vienlaikus tas ir mūsu sistēmā. Tomēr tas ir derīgs līdzeklis visiem paranojas sistadmīniem, kuri vēlas ļoti labi kontrolēt savas sistēmas!

    Šajā rakstā ir sniegta laba informācija par nederīgiem procesa aprakstiem:
    http://www.howtogeek.com/119815/htg-explains-what-is-a-zombie-process-on-linux/
    Un tajā ir skaidrs paskaidrojums par to, kā darbojas dakšu bumba: http://stackoverflow.com/questions/991142/how-does-this-bash-fork-bomb-work

    Salu2

    1.    jotaele teica

      msx: «Termins„ Zombiju process ”ir tehniski nepiemērots, un tiem no mums, kuriem ir neliela pieredze GNU / Linux darbā, jāizvairās no tā lietošanas ...» Ha ha ha. Ir tikai kaut kas lielāks par jūsu lepnumu: jūsu sliktā gaume. Hei, tas, ko jūs darījāt, ir slikta gaume, ja vēlaties lasīt lekciju, iegūt to fakultātē vai ievietot savu emuāru un rakstīt, ko vēlaties, bet nākt šeit, lai labotu dzīvokli uz labu Alf, patiešām ir slikta gaume .

      1.    Fernando Rohass teica

        Patiesība man šķita diezgan interesants komentārs. Daudz vairāk nekā amats

  5.   platonovs teica

    paldies tev ļoti interesanti.

  6.   87 teica

    lielisks raksts paldies

  7.   Alf teica

    MSX
    «Termins„ Zombiju process ”ir tehniski nepiemērots, un tiem no mums, kuriem ir neliela pieredze GNU / Linux, vajadzētu izvairīties no tā lietošanas»

    Mums būs jāpaziņo izstrādātājiem, jo, kā redzēsit, tiek izmantots arī termins zombijs, tur es to izlasīju konsolē.

    Sveicieni

  8.   Pilsēta teica

    Apsveicu, ļoti labs raksts, man vienmēr bija šaubas, vai viņi ir PZ, bet man nekad nav bijis laika to izmeklēt. Tagad es eju uz lapu, un es uzgāju atbildi paldies ...

  9.   truko22 teica

    KDE ar vadības + evakuācijas sistēmu darbības izbeidzas, un mēs tos zombijus varam ātri nogalināt.

  10.   Lietus teica

    Labojums, tas ir ZOMBIE, nevis ZOMBIE process
    Zombie ir angļu valodā
    Zombi spāņu valodā

  11.   Elīna teica

    Grezns, paldies!

  12.   roberto teica

    Pirmkārt, termins zombiju process šķiet pilnīgi pareizs. Arī šis termins ir vismazāk svarīgs.
    Lieta ir tāda, ka, kā norāda msx, un tā pati vikipēdija (es izlasīju rakstu), zombiju process ir patiešām miris.
    «Kad process beidzas, tiek novirzīta visa tā atmiņa un ar to saistītie resursi, lai tos varētu izmantot citi procesi. Jebkurā gadījumā procesa ieraksts procesa tabulā joprojām paliek »
    Tas ir, process vairs neaizņem sistēmas resursus, tāpēc sistēmas slodze ir minimāla, kā paskaidroja msx.
    Tomēr vienīgais, kas tam ir, ir nederīgs ieraksts procesa tabulā ... kas, ja tādu ir tūkstošiem, varbūt tā būtu slodze (galu galā procesoram ir jālasa procesa tabula, un tas lasītu a daudz bezjēdzīgas informācijas) papildus sliktas programmēšanas prakses atspoguļošanai (kāds veido slikti sagatavotas lietojumprogrammas).
    Bet pats par sevi ziņas skaidrojums nav tik pareizs, un pareizais būtu tas, ko sniedz msx.