документация состояния -
Когда процесс завершается, он пытается завершить все свои демонические дочерние процессы.
Возможно, вам нужно что-то вроде this (пример по ссылке) -
with open(os.devnull, 'r+b', 0) as DEVNULL:
p = Popen(['/usr/bin/python25', '/path/to/long_process.py'],
stdin=DEVNULL, stdout=DEVNULL, stderr=STDOUT, close_fds=True)
time.sleep(1) # give it a second to launch
if p.poll(): # the process already finished and it has nonzero exit code
sys.exit(p.returncode)
, который создаст вам независимый процесс. Также см. пакет python-daemon .