用子进程替换当前进程?

30 投票
1 回答
11279 浏览
提问于 2025-04-16 21:49

在Python中,有没有办法启动一个新进程,并且让它使用相同的环境,比如标准输入输出流,然后关闭当前的进程,把控制权交给新启动的进程?这样做实际上就是“替换”当前的进程。

我有一个程序,想要重复它的行为。但是,它使用了一个第三方库,似乎我唯一能真正结束这个库启动的线程的方法就是退出我的Python进程。

而且,这样做似乎还可以帮助管理内存。

1 个回答

39

你可能会对 os.execv() 及相关函数感兴趣:

这些函数的作用是执行一个新的程序,并替换掉当前正在运行的程序;也就是说,它们不会返回到原来的程序。在Unix系统中,新的可执行文件会被加载到当前的进程中,并且会和调用它的进程拥有相同的进程ID。如果出现错误,会以OSError异常的形式报告。

撰写回答