这里有一个简单的方法来找出所涉及的过程,在我关闭控制器和引擎之前打印当前过程的列表,然后在它们被关闭后打印列表。有一个wmic
命令来完成这项工作...
C:\>wmic process get description,executablepath
有趣的是控制器获取5个蟒蛇流程去,每个引擎创建一个额外的Python进程。所以从这个调查中,我还了解到,发动机是其自己的进程,以及控制器...
C:\>wmic process get description,executablepath | findstr ipengine
ipengine.exe C:\Python34\Scripts\ipengine.exe
ipengine.exe C:\Python34\Scripts\ipengine.exe
C:\>wmic process get description,executablepath | findstr ipcontroller
ipcontroller.exe C:\Python34\Scripts\ipcontroller.exe
从它都看起来似乎独立的,但我不认为操作系统的运行过程列表包含关于父母/子女关系的过程如何相关的任何信息。这可能只是一个开发者唯一的形式化,没有在操作系统中跟踪的表示,但我不知道这些内部知道这两种方式。
下面是从MinRK一个明确的quote直接解决这个问题:
“每个引擎是它自己独立的进程...每个内核是一个单独的 过程,并可以在任何机器上.. 。就像你启动了一个终端IPython会话,每个引擎都是一个单独的IPython会话,如果你在这个节点上做一个= 5,那么这个人有10个,这个人有10个。
下面是进一步明确的验证,通过对ServerFault一个伟大的SE Hot Network Question,所提到的使用ProcessExplorer的这实际上跟踪父子进程的启发......
的Process Explorer是微软保持的Sysinternals工具。它 可以显示进程的 属性对话框中的进程的命令行以及启动它的父进程,但该进程的名称可能不再可用。 --Corrodias
如果我断火在,你在截图中看到的是ProcessExplorer的部分只是恰好复制另一个命令窗口更多引擎。
而只是为了完整起见,这里什么命令ipcluster start --n=5
看起来像......