The UNIX and Linux Forums  
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.

Go Back   UNIX och Linux Forum > Upp Forum > UNIX for Dummies Frågor & Svar
.
google unix.com



UNIX for Dummies Frågor & Svar Om du inte är säker på var att skriva en UNIX eller Linux fråga efter det här. Alla UNIX-och Linux-nybörjare välkomna!

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Zombie process ruben.rodrigues Shell-programmering och Skript 2 03-11-2009 11:13
zombie process jeenat Linux 5 03-28-2008 07:36
zombie daemon process! rish2005 UNIX för avancerade & Expertanvändare 1 11-25-2005 09:59
Zombie process swhitney UNIX för avancerade & Expertanvändare 2 10-22-2004 05:12
Zombie process ORCA UNIX for Dummies Frågor & Svar 8 04-26-2002 02:54

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 07-01-2009
password636 password636 is offline
Registered User
  
 

Join Date: februari 2008
Ort: Kina
Inlägg: 6
init antar zombie process?

Hej
Jag försökte skapa en zombie med följande program:
Kod:
int main(void)
{
        pid_t pid;
        int status;

        if ((pid = fork()) < 0)
                perror("fork error");
        else if (pid == 0){ /* child process*/
                exit(0);
        }
        printf("child process ID: %d\n", pid);
        sleep(10);

        return 0;
}
Jag kan konstatera att "Z" stat med ps kommandot, men denna zombie-processen (barnet processen) finns endast i längd från sin uppsägning till moderbolaget uppsägning. Jag kan inte vänta () barnet i moderbolaget, så varför inte den zombie process existerar efter förälder slutar?

I <apue2>,
Citat:
Men vad händer om föräldern slutar innan barnet? Svaret är
att init processen blir förälder processen för varje process vars
förälder upphör. Vi säger att processen har ärvda av init. Vad
vanligtvis händer är att när en process upphör, kärnan går
genom alla aktiva processer för att se om den avslutande processen är
förälder till en process som fortfarande existerar.
Min uppfattning är denna: av Temne moderbolaget upphör, om det finns barn som redan har upphört, gäller fortfarande, init antar att köra dem, inte de redan avslutas sådana. (inte den "aktiva" och "fortfarande existerar" i apue2 betyder detta?) Så en zombie barn kommer inte att antas av init. I mitt fall, med den tid den förälder upphör, barnet är inte "aktiva" och kommer inte att antas av init.

Dessutom barnet i mitt program försvinner omedelbart efter det att föräldern slutar. Som jag beskrev, jag tror inte att det görs av init, vem gjorde det?
  #2 (permalänk)  
Old 07-01-2009
robsonde robsonde is offline
Registered User
  
 

Join Date: Dec 2007
Inlägg: 162
Så vad med zombies?

En zombie är en process som har slutfört utförande men har fortfarande en post i den tabellen. Denna post är fortfarande behövs för den process som startade (nu zombie) för att läsa sin exit status. Termen zombie process kommer från den gemensamma definitionen av zombie (en undead person)
På sikt är färgstark metafor, barnet har dött, men har ännu inte uppnåtts.
Zombies kan identifieras i utdatat från UNIX ps kommandot genom förekomsten av ett "Z" i "STAT" kolumn. Zombies som finns i mer än en kort tid brukar indikera ett fel i moderbolaget program, förekomst av några zombies är inte oroande i sig, men kan tyda på ett problem som skulle växa allvarlig brist tyngre laster. Eftersom det inte finns något minne tilldelas zombie processer utom för processen tabellen in sig, det främsta problemet med många zombies inte kör slut på minne, utan snarare börjar ta slut process ID-nummer.
Om du vill ta bort zombies från ett system till, ta bort den överordnade processen. När en process förlorar sin förälder, init blir det nya moderbolaget. Init regelbundet utför vänta system ring för att dra några zombies med init som förälder.
  #3 (permalänk)  
Old 07-02-2009
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: mars 2005
Ort: löv i B + träd
Inlägg: 2.952
Citat:
av Temne moderbolaget upphör, om det finns barn som redan har upphört, gäller fortfarande, init antar att köra dem
Init kommer att anta endast de processer för vilka det inte finns någon förälder som är närvarande vid liv (eller en plats i den tabellen post) är något mer, men i ert fall, barnet har avslutat första och den träder zombie state för föräldern att samla in status för de skapat barn process. Eftersom moderbolaget process där barnet lever mycket (i viloläge) Initieringsskriptfunktionalitet kan inte fatta det, och när den överordnade processen avslutar, barn statistik samlas in och det finns ingen anledning för barnet för att kvarstå som zombie och det blir helt befrias .
  #4 (permalänk)  
Old 07-02-2009
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderator ala Mode
  
 

Join Date: februari 2007
Location: Innsbruck, Österrike
Inlägg: 1886
Rätt, så du kan försöka att utfärda en kill -9 till den förälder innan ditt program går till zombie. Då bör det komma upp av init.
Reply

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 12:51.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0