在Python中生成安全、跨平台的虚拟进程
我正在写一些代码,这些代码需要在不同的操作系统上运行,并且要和其他进程进行互动。为了测试这些代码,我需要能够用Python创建一些进程,这些进程只需要等待信号来停止运行。我希望能创建一些进程,这些进程可以递归地创建更多的进程。
还有(这部分可能有点奇怪),为了我的测试,最好能创建一些不是由创建它的进程直接生成的进程,这样我就可以模拟一些情况,比如说,os.waitpid
没有权限去和某个进程互动,或者一个进程发出信号给一个工厂去创建另一个进程,而不是直接创建它。
1 个回答
2
如果你在使用Python 2.6,multiprocessing这个包里有一些你可能会觉得有用的东西。
我在我的GitHub上有一个非常简单的例子。如果你运行spawner,它会创建3个独立运行的进程,但它们会通过一个通道和spawner进行交流。所以如果你结束了spawner这个进程,其他你启动的进程也会停止。这里面有很多多余的代码,我正在重构中,但我希望这个例子能给你一个基本的概念。