我正在使用一对python程序,其中一个应该调用第二个。
但是,这应该的方式,第一个程序,使第二个中的守护进程(或者在后台进程中运行)来完成,然后退出,而无需等待第二个程序结束。
这在Python中可行吗?
我一直在寻找os.fork,子进程模块,但我很困惑,因为正确的方法来实现这个...
我正在使用一对python程序,其中一个应该调用第二个。
但是,这应该的方式,第一个程序,使第二个中的守护进程(或者在后台进程中运行)来完成,然后退出,而无需等待第二个程序结束。
这在Python中可行吗?
我一直在寻找os.fork,子进程模块,但我很困惑,因为正确的方法来实现这个...
您可以使用 subprocess.Popen
为了这:
import subprocess
cmd = ['/usr/bin/python', '/path/to/my/second/pythonscript.py']
subprocess.Popen(cmd)
您可能想要重定向 stdout
和 stderr
在某个地方,你可以通过传球来做到这一点 stdout=<file_obj>
到了 Popen
构造函数。
您可以使用 subprocess.Popen
为了这:
import subprocess
cmd = ['/usr/bin/python', '/path/to/my/second/pythonscript.py']
subprocess.Popen(cmd)
您可能想要重定向 stdout
和 stderr
在某个地方,你可以通过传球来做到这一点 stdout=<file_obj>
到了 Popen
构造函数。
“守护进程”具有比“后台进程”更具体的定义。默认 Popen
将执行一个子进程并将控制权交还给您的程序以继续运行。然而,只字未提处理信号(值得注意的是,如果SIGHUP用户退出其前壳你的后台进程完成)或从标准输入断开,标准错误,stdout和任何其他文件描述符打开你调用时间 Popen
。
如果你真的想要一个守护进程,你应该使用 蟒蛇守护 模块,PEP 3143的实施。它负责您不想考虑的重要部分。