By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
425,967 Members | 815 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 425,967 IT Pros & Developers. It's quick & easy.

os.fork leaving processes behind

P: n/a
Hi all,

This may be more of a Linux question, but it relates to how Python
forks...

Today, I implemented a pretty simple listener script using os.fork.
The script runs fine, and performs as expected, but the process table
is left with an odd entry for every fork called.

I'm running on Slackware 9, under the 2.4 kernel, Python 2.5.1.

while True:
conn, addr = s.accept()
if os.fork():
continue
else:
handle_connection(conn)
sys.exit(0)

Running ps -ef results in a slew of '[ python <depreciated]' entries
(or something similar, I no longer have the actual output).

Will these clean themselves up if I leave the process running, and
what causes these?

Thanks in advance, G
Dec 28 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
En Thu, 27 Dec 2007 21:36:36 -0300, Falcolas <ga******@gmail.comescribió:
This may be more of a Linux question, but it relates to how Python
forks...
Yes; every book describing how to use fork tells about zombie processes
and the wait/waitpid functions. Just do the same thing in Python.
Today, I implemented a pretty simple listener script using os.fork.
The script runs fine, and performs as expected, but the process table
is left with an odd entry for every fork called.
A "zombie".
I'm running on Slackware 9, under the 2.4 kernel, Python 2.5.1.

while True:
conn, addr = s.accept()
if os.fork():
continue
else:
handle_connection(conn)
sys.exit(0)
I'd try to use any of the existing server implementations in
SocketServer.py, but if you insist on using your own, look at the
ForkingMixin class as an example of using waitpid() to avoid having zombie
processes.

--
Gabriel Genellina

Dec 28 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.