- - PR -
Javaアプリのサービス化
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2005-01-12 22:53
はじめまして。
JBoss3.2x, Java1.4.x を使ってアプリケーションを作っています。 実はアプリケーションをサービス化してほしいとの依頼を受けましたが、 失敗しました。 Windows では JavaService を使って NTサービス化できました。 しかし、AIX 5.0 では Jakarta Commons Daemon を使おうトライして みたのですが、jsvc の Cコンパイルに失敗しまして、途方にくれています。 Cコンパイルには、ANSI C準拠のものが指定されていますが、 VisualAge C++ Professional / C for AIX Compiler バージョン6 を使用しています。 このCコンパイラは ANSI C準拠でしょうか? どなたか助けていただけないでしょうか?宜しくお願いします。 OS: AIX 5L (PowerPC, 64bit JVM) Java: JRE1.4.1 ※jar化はWindowsで実行しています。 | ||||
|
投稿日時: 2005-01-12 23:04
Javaの質問では無い気がしますが、、、
AIXは全く触ったことがないのですが、確かIBMのUNIX OSですよね? UNIXの場合、わざわざツールを使わなくてもご所望の「サービス化」は 可能だと思いますよ。 通常、Javaに限らずUNIX系OSではデーモンプロセスの起動・停止に シェルスクリプトを用います。ご自身でJBossを起動・停止するための スクリプトを組まれてはいかがでしょうか。 起動時にJBossのプロセスIDをファイルに書き込んでおき、停止時は そのプロセスIDを元にkillコマンドでプロセスを停止する、等の処理を します。もしくは、JBossの停止専用のコマンドがあるのでしたら、 それを実行しても良いでしょう。 ところで、どうしてもjsvcとやらをコンパイルしたいのであれば、 現状コンパイル時に発生するエラーメッセージを示して頂かないと 何ともコメントしようがありません。 | ||||
|
投稿日時: 2005-01-13 00:57
単にバックグラウンドで動いていれば良いというのであれば、nohupで起動してあげれば良いのですが、いっぱしの「デーモン」を名乗るならば、
というぐらいの「お作法」を押さえておくとカッコイイですね。、きっとjsvcというのはその辺のことをやってくれるんでしょう(使ったことはありませんが) 私はそういうのはperlでラッパースクリプトを書いてました。POSIXモジュールでsetsidが使えるので。 | ||||
|
投稿日時: 2005-01-13 02:02
なるほど。そういう作法があるんですねえ。 ちなみに、RedHatのrcスクリプトにはコマンドをデーモン化するシェルの関数(*1)が 入っていると思うんですが、それが仰るようなことをやってくれているのでしょうか? もしそうだとしたら、未記入さんはそのシェルスクリプトを参考にされると良いでしょうね。 (*1): 手元のVine Linux 2.5CRだと/etc/rc.d/init.d/functionsのdaemon関数が それに当たります | ||||
|
投稿日時: 2005-01-17 09:51
ありがとうございます。
早速、デーモン起動用シェルスクリプトで対応する方針で進めました。 シェルスクリプト単体での起動・終了には成功しました。 しかし rc.2 で デーモン起動することには失敗していまして、現在調整中です。 成功しましたら、また投稿させていただきたいと思います。(詳細に書きます) ありがとうございました。 -- 今回はデーモン化すシェルの関数を使用する余裕はありませんでした。 Linuxだとサンプルや関数が充実しているんですね!参考になります! | ||||
|
投稿日時: 2005-01-17 10:51
なるほど。お疲れ様です。 「シェルスクリプト単体での実行には成功するのにOS起動時にinitから実行すると 成功しない、」という場合には、以下のポイントを考えてみるとイイですよ。 ざっくり言うと、スクリプト実行時の環境(環境変数だけでなくもろもろ)の違いが 原因のことが多いです。
とりあえず、思いつくのは以上ですね。 スクリプト内で/tmp辺りにログを吐く様にして、そこにありったけの手がかりに なりそうな情報を書き込んでみると良いですよ。 それでは、引き続き頑張ってくださいね。 | ||||
1
