pysys startProcess с помощью numactl

numactl - это процесс, который может устанавливать привязку процессора. он принимает процесс привязки к процессору в качестве параметра:

numactl -physcpubind 0 <process> <args>

Я могу успешно запустить мой процесс с помощью команды pysys startProcess:

BaseTest.startProcess('processA argsA') 

Тем не менее, приведенное ниже вызывает несуществующий процесс Python в соответствии с ps -ef [PID].

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

Любые мысли о том, как startProcess () может использоваться для вызова процесса (numactl), который:

  • сам по себе имеет аргументы (-physcpubind 0)
  • одним из указанных аргументов является другой процесс (processA), который сам имеет аргументы (argsA)

ТИА

1 ответ

Решение
 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 рассматривает процесс и его аргументы для запуска как один аргумент для себя. Стоит попробовать оба, чтобы увидеть, что происходит.

Другие вопросы по тегам