things get more tricky, because I can't use queues and pipes to
communicate with a running process that it's noit my child, correct?

Yes, I think that is correct.
I don't understand why detaching a child process on Linux/Unix would
make IPC stop working.  Can somebody explain?

It is implemented with shared memory. I think (although I'm not 100% sure) that shared memory is created *and freed up* (shm_unlink() system call) by the parent process. It makes sense, because the child processes will surely die with the parent. If you detach a child process, then it won't be killed with its original parent. But the shared memory will be freed by the original parent process anyway. I suspect that the child that has mapped that shared memory segment will try to access a freed up resource, do a segfault or something similar.
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to