「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:1710
現在:5


openofficeの「ドキュメントの回復」ウィザードを表示させない

ページOpenOffice.org FAQの登録ページ
投稿者shuta
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2008-08-05 18:50:32 (火)
OSLinux
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

こんにちわ。

Linux版のOpenoffice3.0.0を使用しています。バッチで使用しており、OpenOfficeは soffice -accept="socket,port=XXXX;urp;StarOffice.ServiceManager" -invisible -minimized -norestore & でバックエンドで起動しています。

マクロもバックエンドで処理しており、 exec("soffice -invisible macro:///Standard.Standard.Standard") こんな感じでphpから起動しています。

マクロはOpenOfficeBasicです。

ところで、たまにこのバッチがクラッシュします。クラッシュ自体は仕方がない(というか避けようがない)のですが、クラッシュすると「ドキュメントの回復」ウィザードがバックエンドで起動してしまうため、後続の処理が止まってしまいます。

「ドキュメントの回復」をそもそも使用しない設定はできませんでしょうか。ツール⇒オプションの「自動回復情報を保存」はOFFにしていますが、それだけではだめみたいです。

他に設定が見当たらないので、お忙しい中とは思いますが、ぜひアドバイスよろしくお願いします。かなり(泣)状態です。


いくつか・・・

Tora (2008-08-06 12:08:13 (水))

コマンドラインのオプションを確認する

/opt/ooo-dev3/program/soffice -help


致命的なエラー発生した後の自動再起動と回復を抑止する

-norestore    suppress restart/restore after fatal errors.


参考
http://framework.openoffice.org/source/browse/framework/desktop/source/app/cmdlineargs.cxx
http://framework.openoffice.org/source/browse/framework/desktop/source/app/cmdlinehelp.cxx

 -headless もつけておくとよいかと思います。

-headless     like invisible but no userinteraction at all.

そもそも、ユーザーとのマウスやキーボードを使ったお話し合いをしませんよ。というようなオプションです。
DISPLAY 環境変数を設定する必要もなくなるかと思います。

と思いきや、すでに -norestore をご使用になられていますね。
>Linux版のOpenoffice3.0.0を使用しています。バッチで使用しており、OpenOfficeは soffice -accept="socket,port=XXXX;urp;StarOffice.ServiceManager" -invisible -minimized -norestore & でバックエンドで起動しています。

と、ところが、こちらでは、-norestore はお使いになられていないようですね。
>マクロもバックエンドで処理しており、 exec("soffice -invisible macro:///Standard.Standard.Standard") こんな感じでphpから起動しています。

それらの二つは、まったく関係の無い処理なのでしょうか。それとも、相互に関係している処理なのでしょうか。


老婆心ながら、exec("soffice ... の部分については、exec("/opt/xxx/yyy/zzz/soffice ... としっかりとフルパス名で記述しておくほうが、良いかと思います。Linux のディストリビューションによっては、/usr/bin/soffice なんていうのがあって、そっちが起動してしまったりしますので。

なお、エラーレポートの抑止であれば、/opt/ooo-dev3/program/crash_report を削除するとか、
/opt/ooo-dev/basis3.0/share/registry/schema/org/openoffice/Office/Recovery.xcs の中の

   <group oor:name="CrashReporter">
     <info>
       <desc>Settings for the crash reporter.</desc>
     </info>
     <prop oor:name="Enabled" oor:type="xs:boolean">
       <info>
         <desc>Specifies if the crash reporter should be enabled or disabled.</desc>
       </info>
       <value>true</value>
     </prop>
   </group>

の true を false に書き換えるとか。

参考
http://framework.openoffice.org/source/browse/framework/desktop/source/app/app.cxx
void Desktop::retrieveCrashReporterState()

そもそも、-invisible や -headless をつければ、それは関係なくなるでしょうから、、、

もしかしたら、こちらかな?

-nolockcheck  don't check for remote instances using the installation


soffice は起動すると、その soffice を起動した時の HOME 環境変数を元にして、
$HOME/.ooo-dev3/.lock というファイルをおきます。正常に終了すると、その終了時に .lock を削除します。
異常終了すると、その .lock ファイルは残ってしまいます。次回の起動時に、その内容を soffice が確認し、自ホスト、自身のユーザーアカウントなどのチェック結果によっては、警告のダイアログがでることがあります。

PHP などから起動するときには、HOME 環境変数を明示的に正しく設定する必要があります。そうでないと、Apache などの httpd プロセスが実行している環境における HOME 環境変数が示しているディレクトリの配下に .ooo-dev3 などを作成しようと試みてしまいます。そのため、ライセンス認証などのダイアログが表示されているというところで、停止してしまうことになります。

もしくは、Apache の HOME で良いというのであれば、一度以下のような手順などで、ライセンス認証を行っておくとよいかと思います。
1. xhost +
2. /bin/su - httpdの実効ユーザーのアカウント名
3. export DISPLAY=:0
4. /opt/ooo-dev3/program/soffice
5. ライセンス認証を行う

/bin/su の - オプション

Tora (2008-08-06 12:19:49 (水))

余談ですが、以下の二つは、異なります。
(a) /bin/su アカウント名
(b) /bin/su - アカウント名

echo $HOME で、HOME 環境変数に設定されているパス名を確認してみてください。
(a) の場合は、HOME 環境変数は、/bin/su コマンドを実行する前の人の設定内容のままとなっています。たとえ root になったとしても、その前の一般ユーザーの HOME の内容のままとなっています。このような状態で、OpenOffice.org を起動したりすると、その一般ユーザーの ホームディレクトリ配下の .ooo-dev3/ の内容を root などで編集してしまうことになります。ご注意を。

(b) のようにして /bin/su コマンドを実行すると、指定したアカウント名の人のホームディレクトリを HOME が指すようになります。

(a), (b) の違いについては、OpenOffice.org の設定や実行時に、重要となりますので、意識されることをお勧めいたします。

Apache などのログイン不可に設定されているようなアカウントに一時的になるための一般的な手順としては、以下のような感じでしょうか。
1. /bin/su で root になる。
2. /bin/su - アカウント名 で、ログイン不可などに設定してあるアカウントになる。

OOoForumでのやりとり

M.Kamataki (2008-08-06 13:53:44 (水))

似た話題が英語のフォーラムにもありました。

No recovery windows :
http://www.oooforum.org/forum/viewtopic.phtml?t=24265

お名前:
題名: