なんとな~くしあわせ?の日記

「そしてそれゆえ、知識そのものが力である」 (Nam et ipsa scientia potestas est.) 〜 フランシス・ベーコン

Jettyが週1、2で停止する場合はtmpwatchを疑うべきかも

現象

  • 週1or2でJettyが内部エラー起こしてリクエストに404エラーを返す
  • エラー発生は決まって週末の同じ時間

解析

参考

概要

・/usr/sbin/tmpwatch 240 /tmp
 /tmp/下で240時間アクセスが無いファイルを削除する

・/usr/sbin/tmpwatch 720 /var/tmp
 /var/tmp/下で720時間アクセスが無いファイルを削除する

・/var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}
 /var/cache/man/、/var/cache/catman/下で720時間アクセスがないファイルを削除する
  • /tmpに展開されたキャッシュファイルが削除されると、Jettyは異常な状態になった

解決策

You have few choices.
(取れる選択肢はあんまりない。)

1) Specify your own java.io.tmpdir java system property location for jetty to use.
$ java -Djava.io.tmpdir=/path/to/my/new/temp/ -jar start.jar

(① Jettyが使用するjava.io.tmpdirのシステム設定の場所を指定する
$ java -Djava.io.tmpdir=/path/to/my/new/temp/ -jar start.jar)


2) Create a "work" directory under the ${jetty.home} path (whereever that is).
That will cause Jetty to use that work directory instead of whatever the java.io.tmpdir property is set to.

(② "work"という名前のディレクトリを ${jetty.home} の下に作る。
これによりJettyはjava.io.tmpdirにどんなものが設定されていてもworkディレクトリを使用するようになる。)

*1:tmpwatchというサービスを知らなかった…