2012-02-28 17 views
0

UNIX(UNIX)上で実行されているサーバー(Java)があります。プロセス(サーバー)がUNIX上で実行されているかどうかを確認します

私は、サーバーの状態が変更されてメールで通知された場合に「感知する」アプリケーションを開発しようとしています。

どうすればいいのですか?変更を検知する何らかのイベントや他の方法がある場合(ただし、電子メールの送信は問題ではありません)。

私は無限ループで実行されるJavaコードを考えていて、プロセスが実行中かどうかをチェックしますが、それは悪い方法です。

アイデアは受け入れられます。 ありがとうございます。

+0

なぜ冶金学を改革するのですか? [Nagios](http://www.nagios.org/)は神様です。 – Nishant

答えて

1

あなたがプログラムでJavaプログラム(使用してのcronまたはquartzのいずれか)

にタイマーイベントを設定することができますが、特定のかどうかを確認することができますプロセスは、あなたがps -e | grep java

を使用することができます。.. 実行されているか、アプリのステータスが(サーバー上のアプリケーションを変更することができれば、再び、これは依存)トラックを使用することができ、JMXメッセージをsendoutするJavaプログラムを得ることができます。

0

Javaサーバーの状態を検出することは、起動前に準備する必要があります。私はあなたが例えばメトリックプロジェクトを見てみるべきだと思う:http://metrics.codahale.com/

0

サーバーのプロセスIDを監視して、まだ実行中かどうかを確認できます。サーバーが無限ループのどこかにいるかどうかは検出されません。これは、サーバープロセスがファイルにタイムスタンプを定期的に書き込むことによって実行できます。タイムスタンプが間隔の2倍よりも古い場合、それは死んだとみなされます。

関連する問題