Et zombie proces er en computer proces på en Unix -baseret operativsystem , der er færdig med henrettelse , men stadig har en proces ID-nummer tilbage i operativsystemets proces bord. Det er resterne af en større proces eller et program , som undlod at indsamle og udføre alle de exit kommandoer til når processen afsluttes. Disse processer ikke tager nogen CPU-cyklusser eller memory plads selvom . Årsag
Defekt programkode fører ofte til behandlinger, som ikke slutter korrekt , hvilket resulterer i zombie -processer , der opstår i kørende programmer. Programmøren har ikke programmeret en forælder proces til at bruge " vente" systemet til at ringe for at tillade et barn proces at udføre selvstændigt, mens moderselskabet er suspenderet. Det betyder, at barnet processen ikke returnerer en exit statusmeddelelse til den forælder , når det ophører, så den forælder modtager aldrig varsel om opsigelse , og barnet processen bliver en zombie proces.
Overvejelser
Må ikke haste til at opsige zombie -processer , så snart du finder dem. Sommetider overordnede processer forlader zombie -processer på formål, således at den samme proces ID-nummer ikke er givet til to separate processer i programmets levetid. Hvis du kun ser et par zombie -processer på et tidspunkt , der ikke er vedvarende, kan moderselskabet processer i sidste ende opsige dem. Dog kan , hvis dit system begynder at bremse med en stor mængde af processer kører, afslutning nogle zombie proces forbedre ydeevnen.
Lokalisering Zombies
Ved hjælp af en Unix kommando værktøj til at udføre " ps " kommando - en forkortelse for proces -status - viser alle processer i øjeblikket kører på et system. Enhver proces opført som "z " under Stat kolonnen er en zombie proces . Enhver af disse processer , der eksisterer , mens den overordnede proces eller programmet stadig kører , er tegn på forkert kode, mens zombie -processer kører uden en forælder program normalt repræsenterer en fejl i selve operativsystemet .
Killing Zombies
Zombie processer bevarer proces -id-numre i processen indgang bordet, så at have for mange af dem gør forårsage dit system til at køre ud af disse numre. Men du kan tvinge opsige zombie -processer for at frigøre deres proces-id -værdier i tabellen. Opsige dem ved hjælp af " kill - s SIGCHLD " kommando, hvor " PPID " repræsenterer zombie forældrenes proces-id . Alternativt kan du med magt dræbe overordnede processer til at opsige alle børn og zombie -processer , de har skabt så godt.