LibreOfficeのアプリ使用中はサーバーモードが使えないを解消

プログラミング

LibreOfficeのアプリを使っていると、サーバーモードが起動しなことありませんか?
逆にサーバーモードを使っているときはアプリが立ち上がらないことはありませんか?
ちょっと、使いづらいですよね。
今回は、そんな問題を解消します。

なぜ使えないのか

理由は、プロファイルがロックされるからです。
アプリを起動しているとプロファイルをロックするのでサーバーモードが起動できなくなります。
逆にユーザーとしてサーバーモードでLibreOfficeを起動するとそのプロファイルをロックするので、他のアプリケーションが起動できなくなります。

解決方法

プロファイルをロックしないようにするには、LibreOfficeをサーバーモードで起動するときに、”-env:UserInstallation=file:///プロファイルのパス”とするとサーバー用のプロファイルを使うようになります。


soffice  --headless --accept="socket,host=localhost,port=2002;urp;" -env:UserInstallation=file:///C:/Users//temp

このようにすると、サーバーモードでLibreOfficeを使っているときでも、CalcやWriterなどのアプリケーションを使うことができます。
このときLibreOfficeは、c:\Users\\tempにプロファイルを作成します。

補足

どうもLibreOfficeのサーバーモードは、不安定な部分があるようでスクリプトを1度実行すると2度目が実行されなかったりすることがあります。
何か開放していないオブジェクトがあるのかもしれませんが、その辺りは調査中です。
なので毎回スクリプト中からサーバーモードを起動して使うのが良いかもしれません。
本来の使い方は、サーバーモードで起動したらそのままサーバーとして動かし続けてクライアントからの処理を複数受け付ける物かと思います。
しかし、今のところスクリプトを実行するたびにサーバーモードを起動して使うのが安定しているようです。
起動のたびに時間がかかりますのでどうにかならないかなと思っていますが、今のところはこの方法で使っています。

まとめ

LibreOfficeのサーバーモードを使っていると、CalcやWriterなどのアプリケーションが起動しないことがあります。
その理由は、プロファイルがロックされるからです。
プロファイルをロックしないようにするには、LibreOfficeをサーバーモードで起動するときに、
“-env:UserInstallation=file:///プロファイルのパス”
とするとサーバー用のプロファイルを使うようになります。
この方法でCalcやWriterなどのアプリケーションを使うことができます。

Commnts