I have some troubles with Python child processes so I wrote a very simple script:
import os
import sys
import time
pid = os.fork()
if pid:
#parent
time.sleep(30)
else:
#child
#os._exit(0)
sys.exit()
While parent process is sleeping I launch
ps fax | grep py[t]hon
And I read this output
2577 ? S 0:00 python /home/pi/python/GPIO/GPIODaemon.py restart
2583 ? Z 0:00 \_ [python] <defunct>
Using sys.exit()
oros._exit(0)
there is always a Zombie process and I'm unable to understand why.
Working on my more complex code I was thinking that there was some resources that child processes were keeping locked, but on this simplified code child has no file/socket/db connection at all! Why is child process zombiefied?