【发布时间】:2019-11-20 19:48:59
【问题描述】:
鉴于 Linux 上的 PyQt5,我有一个应用程序,它启动一个终端仿真器 (rxvt) 并运行一个命令 (gaurdian),该命令运行另一个程序 (goo)。像这样
medi@medi:~> pstree -p 4610
rxvt(4610)─┬─gaurdian(4612)───goo(4613)
└─rxvt(4611)
我正在尝试查找“goo”的 pid。所以我继续
gooPID = 12 # some random value to show my point
self.process.start(cmd, cmdOpts)
rxvtPID = self.process.processId()
try:
for c in psutil.Process(rxvtPID).children(True):
print("pid=%d name=%s" % (c.pid, c.name()))
if c.name() == 'gaurdian':
gooPID = c.pid
except (psutil.ZombieProcess, psutil.AccessDenied, psutil.NoSuchProcess) as err:
print(err)
print("gooPID=%d " % gooPID )
正在显示跟踪日志:
rxvtPID=4610 name=rxvt
gooPID=12
这表明 gooPID 的初始值没有改变。似乎也没有发生孩子的遍历(即我没有看到孩子的孩子等)。 我这样做对吗?
【问题讨论】:
-
虽然在你的项目中你在问题中使用 pyqt5 是无关紧要的
标签: python python-3.x psutil