使用numactl进行pysys startProcess

时间:2017-03-07 10:28:39

标签: python testing numactl

numactl是一个可以设置处理器亲和力的过程。它需要将cpu作为参数固定的过程:

numactl -physcpubind 0 <process> <args>

我可以使用pysys startProcess命令成功运行我的进程:

BaseTest.startProcess('processA argsA') 

但是下面根据ps -ef [PID]导致一个已经失效的python进程。

BaseTest.startProcess('numactl -physcpubind 0 processA argsA') 

有关startProcess()如何用于调用进程(numactl)的任何想法:

  • 本身有参数(-physcpubind 0)
  • 其中一个参数是另一个进程(processA),它本身有参数(argsA)

TIA

1 个答案:

答案 0 :(得分:0)

 def startProcess(self, command, arguments, environs=None, workingDir=None, state=FOREGROUND,
                    timeout=TIMEOUTS['WaitForProcess'], stdout=None, stderr=None, displayName=None,
                    abortOnError=None, ignoreExitStatus=True):

startProcess的命令参数是您要启动的实际可执行文件,在本例中是numactl。因此,对startProcess的任何调用都应该是格式;

startProcess(command='numactl', arguments=...)

所以问题实际上是你传递的论点是什么。我没有一个方便确认的linux环境,但我希望以下其中一个,即

arguments=['-physcpubind', '0', 'processA', 'argsA']
arguments=['-physcpubind', '0', 'processA argsA']

第一个意味着通常numactl将进程运行并将其命令行参数视为自身的单独参数,或者后者意味着numactl将进程及其参数视为自身的单个参数。值得一试的是看看会发生什么。