How to let the child process live when parent process exited?
multiprocessing, python
Solution
A trick: call `os._exit` to make parent process exit, in this way daemonic child processes will not be killed.
But there are some other side affects, described in the doc:
Exit the process with status n, without calling cleanup handlers,
flushing stdio buffers, etc.
If you do not care about this, you can use it.
Problem
I want to use `multiprocessing` module to complete this. when I do this, like: ``` $ python my_process.py ``` I start a parent process, and then let the parent process spawn a child process, then i want that the parent process exits itself, but the child process continues to work. Allow me write a WRONG code to explain myself: ``` from multiprocessing import Process def f(x): with open('out.dat', 'w') as f: f.write(x) if __name__ == '__main__': p = Process(target=f, args=('bbb',)) p.daemon = True # This is key, set the daemon, then parent exits itself p.start() #p.join() # This is WRONG code, just want to exlain what I mean. # the child processes will be killed, when father exit ``` So, how do i start a process that will not be killed when the parent process finishes? 20140714 Hi, you guys My friend just told me a solution... I just think... Anyway, just let u see: ``` import os os.system('python your_app.py&') # SEE!? the & !! ``` this does work!!