0

情况是这样的:我想从 python 代码打开一个浏览器窗口,如下所示(可移植性不是问题 atm):

subprocess.call(['xdg-open', 'file:///someFileIGenerated.html'])
... # or
pid = subprocess.Popen(...)
... # or (from the webbrowser package)
webbrowser.open(...)

不幸的是,我不能只检查我创建的 pid 是否仍然存在,因为大多数浏览器(Firefox、Chrome)会立即退出创建过程并根据需要生成更多(即每个选项卡一个)。

什么是最负责任的(不会杀死其他浏览器窗口)和可移植的(至少在 Linux 下与 firefox 和 chrome 一起工作)实现这一目标?

编辑:可以在这种情况下使用 ppids 吗?

4

1 回答 1

0

您可以“ping”firefox 进程。下面是我的 open_url shell 脚本的一部分,希望对您有用

OUTPUT=`firefox -remote "ping()" 2>&1 | grep No`
if [[ "${OUTPUT}" == "Error: No running window found" ]]; then
    # firefox is not running
else
    # firefox still running;
fi
于 2012-09-03T11:44:47.977 回答