在Python中,是否有一种方法可以调用一个新进程,将相同的上下文传递给它(如标准IO流),关闭当前进程并控制被调用的进程?这将有效地“替换”进程。 我有一个程序,我想要重复它的行为。然而,它使用了一个第三方库,似乎唯一能够真正杀死由该库调用的线程的方法是退出我的Python进程。 此外,它似乎可以帮助管理内存。
您可能对os.execv() 和相关函数感兴趣:这些函数都会执行一个新的程序,替换当前进程;它们不会返回。在Unix系统下,新的可执行文件将被加载到当前进程中,并且具有与调用者相同的进程ID。错误将作为OSError异常报告。
os.execvp('python.exe', ['python.exe', 'arg1', 'arg2'])
。注意到有点令人费解的'python.exe'
出现了两次。更多细节请参考这个答案。 - Evgeni Sergeev