? En zombie process är en dator process på ett Unix - baserat operativsystem som har avslutat utförande men har fortfarande ett antal process -ID kvar i operativsystemets process bord . Det är resterna av en större process eller program som misslyckades med att samla in och utföra alla de exit -kommandon för när processen avslutas . Dessa processer tar inte upp någon CPU-cykler eller minnesutrymmet though . Orsak
Defekt programkod leder ofta till metoder som inte slutar korrekt , vilket resulterar i zombie-processer som uppstår i program som körs . Programmeraren har inte programmerat en förälder process för att använda " vänta " -systemet kräver att låta ett barn process att exekvera självständigt medan föräldern är upphängd . Detta innebär att barnet processen inte returnera ett meddelande exit status till föräldern när den slutar , så att föräldern aldrig får ett meddelande om uppsägning , och barnet processen blir en zombie process .
Överväganden
inte bråttom att avsluta zombie processer så fort du hittar dem . Ibland förälder processer lämnar zombie processer med flit så att samma process ID-nummer inte ges till två separata processer under programmets livslängd . Om du bara ser ett par zombie processer vid en tidpunkt som inte är långlivade , kan föräldern processerna avslutas så småningom dem . Dock kan om ditt system börjar sakta ner med en stor mängd processer som körs , avsluta några zombie process förbättra prestanda .
Hitta Zombies
hjälp av en Unix kommando verktyg för att utföra " ps " kommandot - kort för process status - listar alla processer som körs på ett system . Varje process listad som " z " i Stat kolumnen är en zombie process . Någon av dessa processer som finns medan den överordnade processen eller programmet kör fortfarande är ett tecken på bristfällig kod , medan zombie processer körs utan en förälder program brukar representera en bugg i själva operativsystemet .
Döda zombies
Zombie processer behåller siffror process-ID i processen posten bordet , så har alltför många av dem gör orsakar ditt system att köra ut av dessa siffror . Däremot kan du avsluta med tvång zombie processer för att frigöra sina värderingar process-ID i tabellen . Avsluta dem med hjälp av " kill - s SIGCHLD " kommandot , där " PPID " representerar zombie förälderns process -ID . Alternativt , kan du döda våld förälder processer för att avsluta alla barn och processer zombie de har skapat samt.