Skip to main content

Hva er en zombieprosess?

En zombieprosess er en forekomst av et dataprogram som beholder en prosessbordoppføring til tross for at de har fullført utførelsen.Defunct prosesser som disse er vanligvis assosiert med UNIX REG;og andre lignende operativsystemer på grunn av måten de håndterer barneprosesser på.Når en barneprosess er ferdig med å utføre, er forelderen typisk ansvarlig for å fjerne den fra prosessbordet.Det er vanligvis ikke mulig å direkte fjerne en zombieprosess med Kill Command, selv om forelderen ofte kan lages for å fjerne den hvis operatøren bruker varselet om signalbarn (Sigchld).Hvis du mislykkes i dette, kan en zombieprosess fjernes indirekte ved å drepe foreldrene.

Zombie -prosessen er et metaforisk beskrivende begrep som viser til de levende døde.Nedlagte prosesser i UNIX REG;og lignende operativsystemer kan sees på som analoge med zombier ved at de opprettholder en prosess -tilstedeværelse til tross for at de ikke lenger utfører sine tiltenkte funksjoner.Når en prosess er ferdig med å utføre, sies den noen ganger å ha dødd, mens virkemidlene som operativsystemet gjenoppretter prosessen kan tildeles tildeling av prosessen, kan være kjent som å høste.Foreldreprosessen til en zombie er teknisk sett ment å høste barna, selv om dette ikke alltid skjer.

Det er visse tilfeller der eksistensen av en zombieprosess kan være forsettlig eller til og med ønsket.Etter at en barneprosess har sluttet å henrette, kan foreldrene trenge å kjøre en annen forekomst av det samme programmet senere.Hvis en zombie ikke er fjernet fra prosessbordet, vil et nytt barn ikke bli tildelt samme identifikasjon (ID) som det gamle barnet.Enkelte programmer kan ha nytte av eller til og med kreve denne typen differensiering.

Hvis en overordnet prosess ikke har utført Wait -kommandoen for å høste zombier den er ansvarlig for, kan det være mulig å tvinge problemet.Dette gjøres vanligvis via Kill -kommandoen og sender Sigchld -signalet til overordnede prosessen.Hvis alt fungerer som den skal, bør en overordnet prosess som mottar dette signalet høste zombiebarna slik at deres ID -er og prosessbordposisjoner kan brukes på nytt.

Under visse omstendigheter, kan en overordnet prosess ignorere Sigchld -signalet.Hvis dette skjer og operatøren fremdeles ønsker at prosessbordet blir fjernet, kan overordnede prosessen drepes.Eventuelle zombier som overordnede prosessen som ble opprettet, vil deretter bli tildelt som barn til initprosessen.Siden initisk initierer ventekommandoen på sine barn, vil eventuelle zombier den er ansvarlig for til slutt bli fjernet fra prosessbordet.