sv.phhsnews.com


sv.phhsnews.com / Vad är en "zombieprocess" på Linux?

Vad är en "zombieprocess" på Linux?


Om du är en Linux-användare kan du ha sett zombieprocesser som spelar runt din processlista. Du kan inte döda en zombie-process eftersom den redan är död - som en verklig zombie.

Zombies är i grunden de återstående bitarna av döda processer som inte har rengjorts ordentligt. Ett program som skapar zombieprocesser är inte programmerat korrekt - programmen ska inte låta zombieprocesser hålla sig kvar.

Bildkrediter: Daniel Hollister på Flickr (Remixed)

Vad är en zombieprocess? vad en zombieprocess är och vad som orsakar zombieprocesser ska visas, måste du förstå lite om hur processer fungerar på Linux.

När en process dör på Linux, är den inte alla borttagna direkt från minnet - dess process descriptor stannar i minnet (processbeskrivningen tar bara en liten mängd minne). Processens status blir EXIT_ZOMBIE och processens förälder anmäls att dess barnprocess har dött med SIGCHLD-signalen. Förälderprocessen ska sedan genomföra systemets vänta () för att läsa den döda processens utgångsstatus och annan information. Detta gör det möjligt för förälderprocessen att få information från den döda processen. Efter väntetiden () kallas zombieprocessen helt bort från minnet.

Detta händer normalt väldigt snabbt, så du ser inte zombieprocesser som ackumuleras på ditt system. Om en föräldraprocess inte programmeras ordentligt och aldrig samtal väntar () kommer dess zombiebarn att hålla fast i minnet tills de städas upp.

Verktyg som GNOME System Monitor,

top kommandot och ps kommando-display zombie-processerna. Faror med zombieprocesser

Zombie-processer använder inte några systemresurser. (Egentligen använder alla en mycket liten mängd systemminne för att lagra sin processdeskriptor.) Varje zombieprocess behåller dock sitt process-ID (PID). Linux-system har ett begränsat antal process-ID-filer - 32767 som standard på 32-bitarssystem. Om zombies ackumuleras i en mycket snabb takt - till exempel om felprogrammerad serverprogramvara skapar zombieprocesser under belastning - kommer hela poolen av tillgängliga PID-filer till slut att tilldelas zombieprocesser, vilket förhindrar att andra processer startar.

några zombieprocesser som hänger ihop är inga problem - även om de tyder på ett fel i deras föräldraprocess på ditt system.

Att bli av med zombieprocesser

Du kan inte döda zombieprocesser eftersom du kan döda normala processer med SIGKILL-signal - zombiprocesser är redan döda. Tänk på att du inte behöver bli av med zombieprocesser om du inte har mycket på ditt system - några zombier är ofarliga. Det finns dock några sätt att bli av med zombieprocesser.

Ett sätt är att skicka SIGCHLD-signalen till moderprocessen. Den här signalen berättar föräldraprocessen att utföra vänta () systemsamtal och städa upp sina zombiebarn. Skicka signalen med kommandot

kill , ersätter pid i kommandot nedan med moderprocessens PID: kill -s SIGCHLD pid

Om föräldraprocessen inte är programmeras inte korrekt och ignorerar SIGCHLD-signaler, så hjälper det inte. Du måste döda eller stänga zombies föräldraprocess. När processen som skapade zombierna slutar, init initierar zombieprocesserna och blir deras nya förälder. (init är den första processen som startas på Linux vid start och tilldelas PID 1.) init utför systemets vänta () systemsamtal för att städa upp sina zombiebarn, så init kommer att göra korta arbeten med zombierna. Du kan starta om överföringsprocessen efter att ha stängt den.

Om en förälderprocess fortsätter att skapa zombies, bör den ordnas så att den ordentligt samtalar vänta () för att skörda sina zombiebarn. Fyll en felrapport om ett program på ditt system fortsätter att skapa zombies.


Hur man tar bort verktygsfält och Adware med AdwCleaner

Hur man tar bort verktygsfält och Adware med AdwCleaner

En gång var det en dum person som heter Justin, som installerade Java trots att det är hemskt. Ännu värre, den här dummen klickade "Next" utan att inaktivera de buntrade erbjudandenen. Okej, okej, den dumma personen var jag. Tack vare min dumhet visar Yahoo nu som en sökmotor, och ingen vill det . Det här var inte en engångsincident, annars har andra program gjort andra irriterande förändringar på min dator, lägga till saker som verktygsfält och till och med extra annonser i min webbläsare.

(how-to)

Så här stoppar du iPhoto från att starta när du kopplar in en iPhone, iPad eller ett minneskort

Så här stoppar du iPhoto från att starta när du kopplar in en iPhone, iPad eller ett minneskort

När du bytte till OS X var det en stor irritation som höll på att hända om och om igen - varje gång jag plugga någonting i min MacBook och det råkar ha en DCIM-mapp på filsystemet, startar iPhoto omedelbart och startar skanning. RELATED: Varför lägger varje kamera i en DCIM-mapp? Problemet är att jag inte vill använda iPhoto hela tiden - jag menar säkert, jag kan använda den för att importera mina foton, men vad gör jag om jag försöker göra något annat som att hacka min Minecraft Pocket-spara filer eller jag har har annat innehåll på en flyttbar enhet?

(how-to)