2012-02-09 10 views
0

os.system("firefox &")を使用してFirefoxのウィンドウを開くcgiスクリプトを作成しました。python cgiが次回ロードされない

だから、それは私のためにFirefoxのウィンドウを作って、リモートユーザーの確認ページを印刷するということです。

問題は、firefoxウィンドウを閉じた後にのみ確認ページを表示することです。これは特に困惑しています。なぜなら、もし私がターミナルでスクリプトを実行すると、それを実行するのとは反対に、すぐに確認のHTMLを出力するからです。

確認ページをすぐに読み込むことができない理由については、誰でも知ることができますか?

+1

は、なぜあなたはとにかく、CGIスクリプトは、サーバー上のウィンドウを開くようにしたいですか? – geoffspear

+0

私は自分のアンドロイドをリモートコントロールにしようとしています – cyrusv

+0

これは巨大なセキュリティ上の危険であると理解していますが、それに敏感な物質がない私のhtpcです – cyrusv

答えて

0

os.systemを使用しないでください。 subprocess moduleを使用してください。

os.system documentationは言う:

subprocessモジュールは 新しいプロセスを生成し、その結果を取得するためのより強力な機能を提供します。そのモジュールを使用することは、この機能を使用することよりも好ましい です。

これを試してみてください:

​​
+0

今私は:\t 'subprocess.Popen [['sudo'、 ' '、' userwithpermissions '、' /home/script/to/set/envvars/','/usr/lib/firefox-10.0/firefox --display =:0.0& '、'& ']) 'を実行します。 問題が残っています - サーバー上でFirefoxを正常に起動しますが、クライアントは次のページを半分しか読み込めません。 Firefoxのウィンドウを閉じるとすぐに、クライアントの確認ページの残りの部分が読み込まれます。 – cyrusv

+0

私の推測では、リビングサブプロセスが存在し、クライアントへの応答全体を送信していない間に、ApacheがCGIプロセスを有効に保っていると思います。 – geoffspear

+0

それは理にかなっています。 mod_wsgi、mod_python、またはmod_fastcgiは助けになると思いますか? – cyrusv

関連する問題