On Wed, 2009-01-21 at 15:54 +0100, Sabine Jordan wrote: > Hello, > > I've done some more research on the system. here's what I've found out. > > The defunct processes are from the application but these proceses are > children of the asterisk process. >
Yes almost always zombies are caused by a bug in the parent process, not in the child. The parent needs to call wait() to get its status. A zombie is just a process in the process table that exists until the parent checks its status with wait, waitpid or something similar. When the parent dies, init becomes the parent and its good about checking this so they disappear at that time. Its my suggestion that you look into asterisk where its calling the agi and add a wait in there. A zombie process almost never can be created due to a bug in the child process (mostly because its only a zomibe after the child has exited and all the resources it was using are released). Zombies also dont hurt much since they only use a tiny bit of ram, namely the process table entry. If you have a max process limit then it may affect that count I am unsure if it includes the state in its limits. -- Trixter http://www.0xdecafbad.com Bret McDanel pgp key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8AE5C721
signature.asc
Description: This is a digitally signed message part
_______________________________________________ --Bandwidth and Colocation Provided by http://www.api-digital.com-- asterisk-biz mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-biz
