我正在通过 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 上运行,如果这意味着什么......