0

我正在通过 popen 从 python 运行命令。在多核系统上,我有一个函数将根据系统的利用率返回字符串“/usr/bin/taskset -c <>”。然后,我将字符串附加到系统命令,然后再将其发送到 popen。

根据我的观察,任务集包装器运行正常,系统命令被观察到包装在来自“ps -elf”的任务集命令中

4 S root     18986 18978  0  80   0 - 15016 poll_s 10:54 pts/3    00:00:00 sudo /usr/bin/taskset -c 0?sudo /usr/sbin/tcpdump -s 0 -nei lo 

我不确定“?”是什么?意味着,在从 linux 控制台手动执行命令时,我没有观察到

我通过 popen 发出命令

我有一个函数可以决定系统是否是多核的,如果它是多核的,它将返回字符串“sudo /usr/bin/taskset -c”

if multicore():
    taskstring="sudo /usr/bin/taskset -c %s" % cpu 
else:
    taskstring=""

后续命令是 tpcdump,所以它将是

command = taskstring+" sudo /usr/sbin/tcpdump -s 0 -nei lo"
cmd=command.split(" ")
subprocess.Popen(cmd,stdout=open('%s' % fileout,'w'),stderr=subprocess.STDOUT)

我在 Ubuntu 14.04 上运行,如果这意味着什么......

4

0 回答 0