【发布时间】:2018-05-24 06:19:56
【问题描述】:
代码:
文件:script.py
from multiprocessing import Process
def func():
async_process()
print('OK')
return 123
def func2(args):
# do a lot of things here
# ...
pass
def async_process():
p = Process(target=func2, args=args)
p.daemon = False
p.start()
当我在 Python 脚本中直接调用 func() 时,我可以立即得到返回值,这是我所期望的。
但是,当我像这样在命令行中调用 func() 时:
python -c "from script import func;func()"
命令行将完成执行,直到新创建的进程自行完成。这不是我想要的。
我应该如何更改程序或者我应该如何编写脚本以确保:
我可以在命令行中调用func();
func()完成后命令行会立即返回值,不会等待新创建的进程。
新创建的进程可以继续运行。
【问题讨论】:
标签: python linux python-3.x shell process