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!!
init
and keep going on. – Gollininit
process. – Strickmannohup
oros.fork
. A similar question is here: #6011735 – Depressantmultiprocessing
orsubprocess
can not do this? But, linux os programming is a perfect solution. – Strickmanos._exit
to make parent process exit, in this way daemonic child processes will not be killed. – Candlermultiprocessing
module like this. It's meant to be used as a drop-in replacement for threads, which of course cannot live beyond the life of the parent process. If you want to spawn a process that can live beyond the life of the parent, use thesubprocess
module. – Thermoclinesubprocess
: https://mcmap.net/q/25390/-popen-waiting-for-child-process-even-when-the-immediate-child-has-terminated – Thermoclinesubprocess.Popen()
did NOT block the father process, father process just exited, let child finish. U should answer this~ – Strickman