python子进程继续父进程退出_当父进程退出时,如何让子进程存活?

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!!

解决方案

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.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值