如何检查主流Web浏览器的退出?

时间:2012-09-03 11:07:45

标签: google-chrome firefox fork subprocess pid

这种情况:我想从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)?

修改:在这种情况下可以使用ppid吗?

1 个答案:

答案 0 :(得分: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