我使用以下代码(只是相关代码)在 Python 中生成了一个进程:
...
_LAUNCH_CMD = '/usr/bin/omxplayer -s --vol %s %s %s'
...
cmd = self._LAUNCH_CMD % (volume, args, file)
...
self._process = pexpect.spawn(cmd, timeout=5)
它总是正常启动。在某些情况下,我需要获取进程的 PID 并从 python 代码中终止它。我试过了
self._process.pid
它给了我一个 PID,但过了一段时间我意识到它不起作用,因为这个命令总是返回一个比实际进程少 10 的数字。例如,当 omxplayer 运行并且我使用上一个命令检查 PID 时,它返回“24178”,但是当我使用“pidof omxplayer.bin”时,它返回“24188”。我不知道 10 是恒定的还是可以改变的,所以我认为硬编码不是一个好主意
os.system("kill -9 %s" % (self._process.pid + 10))
任何人都知道导致差异的原因或解决方案是什么?