在Python中运行不包含父进程的子进程

时间:2014-07-16 17:31:01

标签: python process parent

我有一个程序我正在另一个程序中运行。子进程运行时,父程序冻结。有没有办法在操作系统中将子进程作为父进程本身运行?

2 个答案:

答案 0 :(得分:3)

您可以使用subprocess.Popen,假设您真的想要启动一个与父Python脚本完全分开的程序:

import subprocess
subprocess.Popen(["command", "-a", "arg1", "-b", "arg2"])

这将启动command作为调用脚本的子进程,不会阻塞等待它完成。如果父进程退出,子进程将继续运行。

答案 1 :(得分:0)

如果您真的想拥有独立流程,请查看multiprocessing模块。如果在同一个OS进程中运行单独的线程就足够了,那么使用threading。或者您是否有兴趣使用subprocess

在Python脚本中启动外部程序

不幸的是,这个术语有点令人困惑。例如,在Linux" thread"和"过程"都是独立的过程,没有真正的区别。在python"过程"是一个单独的OS进程,线程在相同的OS进程中运行。

有关这些问题的详细信息,您可以查看以下问题:Multiprocessing vs Threading Python