バックグラウンドのhtmlからpdfへのコンバーターとして実行されているxulrunnerアプリケーションがあります。これは基本的にコマンドラインアプリケーションであり、ユーザーインターフェイスは表示されません。ただし、xulrunnerはデフォルトで、アプリケーションのプロファイルとインスタンスを共有しようとします。プロファイルのロックなどを行わずに、アプリケーションの複数のインスタンスを同時に実行するにはどうすればよいですか?
3 に答える
(遅くてかなり無駄ですが)うまくいくように見えるのは、呼び出しごとに新しいプロファイルを作成し、終了後にクリーンアップすることです:xulrunner -profile $ tempdir -no-remote application.ini ... rm -fr $ tempdir
同様の目的( mozilla2psの実行)でオプションを(とりわけ)使用することについて言及しているフォーラム投稿がここにあります:--disable-single-profile
ほとんどの場合、チャームのように機能しますが、2つのドキュメントが同時に変換されると、xulrunnerは別のウィンドウがまだ実行されていると文句を言います。私はこれを防がなければなりません。古いmozillaスイートでは、次のオプションを使用してこの動作を防ぐことができます。
ac_add_options --disable-single-profile
ac_add_options --enable-profilesharing
ac_add_options --disable-profilelocking
これらのオプションはxulrunnerでもサポートされていますが、xulrunnerは--disable-single-profileオプションを使用してコンパイルされません。誰かがこの問題についてもっと知っていますか?または、xulrunnerにすでに実行中のxulrunnerプロセスを無視させ、代わりに新しいプロセスを開始させる別の方法はありますか?
残念ながら私はこれをテストし、xulrunnerはそのオプションのセットでコンパイルするようになりましたが、それでも共有エラーが発生するようでした(ここで何かが足りない可能性があります)
アプリケーションがUIを必要としない場合(XPComのみ)、xpcshellで遊ぶことを強くお勧めします(この実行可能ファイルを持つために独自のXulRunnerを構築します)。
XulRunnerのいくつかのインスタンスについては、MOZ_NO_REMOTE=1をエクスポートします。