no.phhsnews.com


no.phhsnews.com / Hva er en "Zombie-prosess" på Linux?

Hva er en "Zombie-prosess" på Linux?


Hvis du er en Linux-bruker, kan det hende du har sett zombieprosesser som springer rundt prosesslisten din. Du kan ikke drepe en zombie-prosess fordi den allerede er død - som en faktisk zombie.

Zombier er i utgangspunktet de resterende biter av døde prosesser som ikke har blitt renset opp riktig. Et program som lager zombieprosesser, er ikke programmert riktig - programmene skal ikke la zombieprosesser holde seg fast.

Bildekreditt: Daniel Hollister på Flickr (Remixed)

Hva er en Zombie-prosess?

For å forstå hva en zombieprosess er og hva som forårsaker zombieprosesser å vises, må du forstå litt om hvordan prosesser fungerer på Linux.

Når en prosess dør på Linux, blir den ikke alle fjernet fra minnet umiddelbart - prosessen descriptor forblir i minnet (prosessbeskrivelsen tar bare en liten mengde minne). Prosessens status blir EXIT_ZOMBIE og prosessens foreldre blir varslet om at barnprosessen har døde med SIGCHLD-signalet. Den overordnede prosessen skal da utføre ventetiden () systemanrop for å lese dødsprosessens utgangsstatus og annen informasjon. Dette gjør det mulig for foreldreprosessen å få informasjon fra den døde prosessen. Etter ventetiden () kalles zombieprosessen helt fra minnet.

Dette skjer vanligvis veldig raskt, slik at du ikke ser at zombieprosesser akkumulerer på systemet ditt. Men hvis en foreldreprosess ikke er programmert riktig og aldri ringer vente (), vil zombiebarnene holdes fast i minnet til de blir ryddet.

Verktøy som GNOME System Monitor, toppen kommandoen, og ps kommandoshow-zombie-prosessene.

Farer ved Zombie-prosesser

Zombie-prosesser bruker ikke noen systemressurser. (Egentlig bruker hver en svært liten mengde systemminne for å lagre prosessbeskrivelsen.) Hver zombieprosess beholder imidlertid sin prosess ID (PID). Linux-systemer har et begrenset antall prosess-ID-er - 32767 som standard på 32-biters systemer. Hvis zombier samler seg med en veldig rask hastighet, for eksempel hvis feilprogrammert serverprogramvare skaper zombieprosesser under belastning, vil hele bassenget av tilgjengelige PIDs til slutt bli tildelt zombieprosesser, slik at andre prosesser ikke starter.

Noen zombieprosesser som henger rundt er ikke noe problem - selv om de tyder på en feil med deres foreldreprosess på systemet.

Å bli kvitt Zombie-prosesser

Du kan ikke drepe zombieprosesser som du kan drepe normale prosesser med SIGKILL signal - zombie prosesser er allerede døde. Husk at du ikke trenger å bli kvitt zombieprosesser, med mindre du har mye på systemet ditt - noen få zombier er ufarlige. Det er imidlertid noen måter du kan kvitte deg med zombieprosesser.

En måte er å sende SIGCHLD-signalet til foreldreprosessen. Dette signalet forteller foreldreprosessen for å utføre ventetiden () systemanrop og rydde opp sine zombiebarn. Send signalet med kommandoen drep , erstattet pid i kommandoen nedenfor med foreldreprosessens PID:

kill -s SIGCHLD pid

Men hvis den overordnede prosessen ikke er Det er ikke programmert riktig og ignorerer SIGCHLD-signaler, dette hjelper ikke. Du må drepe eller lukke zombierens foreldreprosess. Når prosessen som opprettet zombiene ender, erverer init zombieprosessen og blir deres nye forelder. (init er den første prosessen startet på Linux ved oppstart og tildeles PID 1.) init utfører periodisk ventetiden () systemanrop for å rydde opp sine zombiebarn, så init vil gjøre kort arbeid av zombiene. Du kan starte foreldreprosessen på nytt når du lukker den.

Hvis en foreldreprosess fortsetter å lage zombier, bør den løstes slik at den kaller ordentlig vent () for å høste sine zombiebarn. Fil en feilrapport hvis et program på systemet ditt fortsetter å lage zombier.


OTT Guide for å skape et sterkt passord

OTT Guide for å skape et sterkt passord

Det er så vanlig nå at vi alle gjør det uten å tenke på det: Opprett et passord som minst x tegn, har minst ett tall og ett symbol og er ikke ditt fornavn eller etternavn. Enten du er på jobb eller oppretter en Apple ID, er disse passordskravene til et "sterkt" passord overalt.Etter å ha opprettet et nytt passord på en side en dag begynte jeg å tenke på hvor forskjellige alle kravene var. Noen net

(How-to)

Kontinuerlighet er et nytt sett med funksjoner som tillater Apple-enhetseiere (iPhone, iPad, iPod Touch, Mac) å øyeblikkelig og uten problemer Overfør arbeid, tekster og samtaler, samt sett opp personlige Hotspots, mellom enheter. Her er hva alt det betyr og hvordan du bruker det.

Kontinuerlighet er et nytt sett med funksjoner som tillater Apple-enhetseiere (iPhone, iPad, iPod Touch, Mac) å øyeblikkelig og uten problemer Overfør arbeid, tekster og samtaler, samt sett opp personlige Hotspots, mellom enheter. Her er hva alt det betyr og hvordan du bruker det.

Omvendt, hvis du bruker en iPhone og du er på en telefonsamtale eller involvert i en oppvarmet tekst samtale, og du vil sitte ned på din Mac og fortsette å snakke eller teksting, kan du også gjøre det. Kontinuiteten er svært allsidig og som så mye annet i Apples økosystem, virker det bare. I tillegg kan Personal Hotspot du bruke din iPhones dataforbindelse uten å måtte skrive inn et passord, selv når enheten er i hvilemodus.

(how-to)