2009年3月5日木曜日

OS-X Server で daemon

jetty をOS-X Server に入れて、自動軌道しようとして苦労してしまった。

launchd の管理となり、plist ファイルを作成してロードさせる。
しかし、これには大きな制限があった!
Appleの解説によると、daemon を起動するプログラムは、

  fork して、元のプロセスが終了してはいけない!
daemon 化してはいけない:daemon function を使用してはいけない

とのことで、ちょうど「jetty.sh」がこれにあたるため、何度登録しても「jetty.sh start」の
後でlaunchdがプロセスがいなくなったと思って子プロセスまできれいさっぱりと落として
くれていたのだ。つまり、正常に近い終了だったためログをみていてもなかなか気づかなかった。
正しくは、「jetty.sh supervise」 とすればよかった。

ちなみに、OS-X Server には、最初からTomcatが入っていた。ただし、使うためにはWeb設定で
TomcatのチェックボックスをONにしないといけないようだ。

0 件のコメント: