nl.phhsnews.com


nl.phhsnews.com / Wat is een "Zombie Process" onder Linux?

Wat is een "Zombie Process" onder Linux?


Als u een Linux-gebruiker bent, heeft u mogelijk zombie-processen gezien die rondschudden rond uw processenlijst. Je kunt een zombi proces niet doden omdat het al dood is - zoals een echte zombie. Zombies zijn in feite de overblijfselen van dode processen die niet goed zijn opgeruimd. Een programma dat zombieprocessen maakt, is niet goed geprogrammeerd - programma's mogen de zombieprocessen niet laten blijven hangen.

Beeldcredits: Daniel Hollister op Flickr (Remixed)

Wat is een zombieproces?

Om te begrijpen wat een zombieproces is en wat ervoor zorgt dat zombieprocessen verschijnen, je zult een beetje moeten begrijpen hoe processen werken op Linux. Als een proces sterft onder Linux, wordt het niet meteen uit het geheugen verwijderd - het proces descriptor blijft in het geheugen (de procesdescriptor neemt slechts een kleine hoeveelheid geheugen in beslag). De status van het proces wordt EXIT_ZOMBIE en de bovenliggende van het proces krijgt een melding dat het onderliggende proces is overleden met het SIGCHLD-signaal. Het parent-proces moet dan de systeemaanroep wait () uitvoeren om de exit-status van het dode proces en andere informatie te lezen. Hierdoor kan het bovenliggende proces informatie uit het dode proces halen. Nadat wait () is aangeroepen, is het zombieproces volledig uit het geheugen verwijderd.

Dit gebeurt normaal gesproken erg snel, dus je zult geen zombie-processen zien accumuleren op je systeem. Als een bovenliggend proces echter niet correct is geprogrammeerd en nooit wacht () aanroept, blijven de zombiekinderen in het geheugen hangen totdat ze zijn opgeruimd.

Hulpprogramma's zoals GNOME System Monitor, de

top

opdracht en de opdracht ps zombie-processen weergeven Gevaren van zombie-processen Zombie-processen gebruiken geen systeembronnen. (Eigenlijk gebruikt iedereen een heel klein beetje systeemgeheugen om zijn procesdescriptor op te slaan.) Elk zombieproces behoudt echter zijn proces-ID (PID). Linux-systemen hebben een eindig aantal proces-ID's - standaard 32767 op 32-bits systemen. Als zombies zich in een zeer snel tempo ophopen, bijvoorbeeld als onjuist geprogrammeerde serversoftware zombieprocessen onder belasting aan het creëren is, zal de gehele pool van beschikbare PID's uiteindelijk worden toegewezen aan zombieprocessen, waardoor wordt voorkomen dat andere processen worden gestart.

een paar zombie-processen die rondhangen, vormen geen probleem - hoewel ze wel een bug aangeven met hun bovenliggende proces op je systeem.

Zombie-processen verwijderen

Je kunt zombieprocessen niet doden omdat je normale processen kunt doden met de SIGKILL-signaal - zombie-processen zijn al dood. Houd in gedachten dat je zombie-processen niet hoeft te verwijderen, tenzij je een groot deel van je systeem hebt - een paar zombies zijn ongevaarlijk. Er zijn echter een paar manieren om zombie-processen kwijt te raken. Een manier is om het SIGCHLD-signaal naar het bovenliggende proces te sturen. Dit signaal vertelt het bovenliggende proces om de systeemaanroep wait () uit te voeren en zijn zombiekinderen op te ruimen. Verzend het signaal met de opdracht

kill

, waarbij

pid wordt vervangen in de onderstaande opdracht met de PID: kill -s SIGCHLD pid Echter, als het bovenliggende proces niet niet goed geprogrammeerd en negeert SIGCHLD signalen, dit zal niet helpen. Je moet het ouderproces van de zombies doden of sluiten. Wanneer het proces dat de zombies heeft gemaakt eindigt, neemt het de zombieprocessen over en wordt het hun nieuwe ouder. (init is het eerste proces dat gestart is bij Linux bij het opstarten en is toegewezen aan PID 1.) init voert periodiek de wait () systeemaanroep uit om zijn zombiekinderen op te ruimen, dus init zal korte metten maken met de zombies. Je kunt het bovenliggende proces opnieuw starten nadat je het sluit. Als een ouderproces doorgaat met het maken van zombies, zou het moeten worden opgelost zodat het op de juiste manier wait () aanroept om zijn zombiekinderen te oogsten. Sla een foutenrapport op als een programma op uw systeem zombies blijft maken.


Het aanraaktoetsenbord permanent uitschakelen in Windows 8 en 10

Het aanraaktoetsenbord permanent uitschakelen in Windows 8 en 10

U hebt misschien gemerkt dat, op mysterieuze wijze, het Windows 'Touch Keyboard-pictogram steeds in uw systeemvak verschijnt (of het daadwerkelijke toetsenbord opduikt) ). Als je net zo geirriteerd bent door het fantoombeeld als wij, zul je zeker willen profiteren van deze eenvoudige oplossing om het permanent te verbannen.

(how-to)

Hoe verwijdert u de niet-gebruikte delen van bijgesneden schermafbeeldingen in Microsoft Office-documenten?

Hoe verwijdert u de niet-gebruikte delen van bijgesneden schermafbeeldingen in Microsoft Office-documenten?

Wanneer u een screenshot toevoegt aan een Microsoft Office-document en deze bijsnijdt, denkt u waarschijnlijk niet verder na over de ongebruikte porties, maar wist u dat ze er nog steeds zijn en een veiligheidsrisico kunnen vormen als ze gevoelige informatie bevatten? De SuperUser Q & A van vandaag helpt een bezorgde lezer om alleen die delen van de schermafbeeldingen te behouden en de rest permanent te verwijderen.

(how-to)