0

これが状況です: 次のいずれかのように、Python コードからブラウザー ウィンドウを開きたいです (移植性は問題ではありません)。

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

残念ながら、ほとんどのブラウザー (Firefox、Chrome) は作成プロセスをすぐに終了し、必要に応じてさらに (つまり、タブごとに 1 つ) 生成するため、作成した pid がまだ生きているかどうかを確認することはできません。

これを達成する上で最も責任があり(他のブラウザウィンドウを殺さない)、移植可能(少なくともLinuxの下でFirefoxとChromeで動作する)は何ですか?

編集: このコンテキストで ppids を使用できますか?

4

1 に答える 1

0

Firefox プロセスに "ping" を実行できます。以下に私の open_url シェル スクリプトの一部を示します。

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 に答える