По умолчанию дочерний процесс умирает, родителю отправляется сигнал SIGCHLD.Вероятно, это связано с вызовом os.waitpid ().
Если вы посмотрите документацию модуля Python "signal", предупреждение довольно ясно:
Необходимо соблюдать осторожность.если оба сигнала и потоки используются в одной программе.Фундаментальная вещь, которую следует помнить при одновременном использовании сигналов и потоков: всегда выполнять операции signal () в основном потоке выполнения.Любой поток может выполнить alarm (), getsignal (), pause (), setitimer () или getitimer ();только основной поток может установить новый обработчик сигнала, и основной поток будет единственным, который будет принимать сигналы (это обеспечивается модулем сигналов Python, даже если реализация базового потока поддерживает отправку сигналов отдельным потокам).Это означает, что сигналы не могут использоваться как средство межпотоковой связи.Вместо этого используйте блокировки.
http://docs.python.org/library/signal.html
НО ... если вы оставите сигнал SIGCHLD в покое, то вы с радостью сможете вызвать os.waitpid () (или любой другойдругой вариант os.wait ()) из потока.
Основным недостатком является то, что вам нужно будет использовать os.waitpid () с WNOHANG и периодически опрашивать, если вы хотите каким-либо образом отменить операцию,Если вам не нужно отменять os.waitpid (), вы можете просто вызвать его в режиме блокировки.