通过调用子进程替换当前进程?

eac*_*eau 20 python replace process

在python中,有没有办法调用一个新的进程,将它传递给相同的上下文,例如标准IO流,关闭当前进程,并控制被调用的进程?这将有效地"替换"该过程.

我有一个程序,我想重复它的行为.但是,它使用第三方库,似乎我能真正杀死该库调用的线程的唯一方法是退出()我的python进程.

此外,它似乎可以帮助管理内存.

det*_*tly 27

您可能对以下os.execv()朋友感兴趣:

这些函数都执行一个新程序,取代当前进程; 他们不回来.在Unix上,新的可执行文件被加载到当前进程中,并且将具有与调用者相同的进程ID.错误将报告为OSError异常.

  • 请注意,调用看起来有点像`os.execvp('python.exe',['python.exe','arg1','arg2'])`.注意有点反直觉的''python.exe'`出现两次.有关详细信息,请参阅[此答案](http://stackoverflow.com/a/18552137/1143274). (7认同)