import psutil
for p in psutil.process_iter():
if p.name() == 'foo':
print p.cmdline()
print ' '.join(p.cmdline())
PROCESS:
foo -p "Hello World"
RESULT:
['foo', '-p', 'Hello World']
foo -p Hello World
我希望获得进程的原始命令行foo -p "Hello World"
,我尝试使用cmdline()
,但它提供了标记化的参数,我对此不感兴趣,并且加入它们不会一直产生预期的结果,因为可以从结果的第二次打印中可以看出。
有没有办法最好以可移植的方式实现这一点(可能使用其他库或以不同的方式进行)?
编辑
这是为了与已经存储的命令进行比较。我的问题的另一个解决方案可能是,' '.join
如果我可以获得静态命令字符串 ( foo -p "Hello World"
) 而没有 args 周围的引号来进行比较,那就没问题了。这意味着,如果有一个函数可以执行 psutil 正在执行的 shell 参数标记化,它将解决我的命令比较问题。