Hva er en zombieprosess?
En zombieprosess er en forekomst av et dataprogram som beholder en prosesstabellpost til tross for at de har fullført utførelsen. Defunct prosesser som disse er vanligvis assosiert med UNIX® 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 ikke klarer dette, kan en zombieprosess fjernes indirekte ved å drepe foreldrene.
Zombie -prosess er et metaforisk beskrivende begrep som viser til de levende døde. Defunct prosesser i UNIX® og lignende operativsystemer kan sees på som analoge med zombier ved at de opprettholder en prosessbord tilstedeværelse til tross for at de ikke lenger utfører sine tiltenkte funksjoner. Når en prosess er ferdig eXecuting er det noen ganger sagt å ha dødd, mens virkemidlene som operativsystemet gjenoppretter prosessens tildeling 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 ventekommandoen for å høste zombier den er ansvarlig for, kan det være mulig å tvinge problemet. Dette gjøres vanligvis via Kill -kommandoen og sender Sigchldsignal til overordnet prosess. Hvis alt fungerer som den skal, bør en overordnet prosess som mottar dette signalet høste zombiebarna slik at ID -ene og prosessbordposisjonene 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 ventetidekommandoen på sine barn, vil alle zombier den er ansvarlig for til slutt bli fjernet fra prosessbordet.