6

Windows サービスのステータスを調べて、サービスが開始され実行されていることを確認できるライブラリを探しています。Sigar ライブラリを調べましたが、GPL であり、使用できません。これは商用ソフトウェアにバンドルされるため、商用ライセンスまたは BSD(ish) ライセンスが必要です。

4

3 に答える 3

5

他に何も役に立たない場合は、少し異なるアプローチを考えてみてください (もちろん、可能であれば)。

  • Windows サービスの監視 (nagios、Zabbix など) を含む、監視を行う無料/非無料のソフトウェアがたくさんあります。これらのモニターには通常、Java アプリをさまざまな方法で統合できるオープン API があります。
  • 依存するサービス アプリケーションを制御できる場合は、Java アプリケーションがチェックする別の異なる方法を公開します (たとえば、ポートでダミー リスナーを実行する、ファイルを作成するなど)。Windows サービスはクロスプラットフォームではないため、すぐにサポートされるとは考えられません。
于 2008-09-24T15:15:09.293 に答える
4

一部のオペレーティングシステムにはWindowsのような「サービス」の概念がないため、これを行うための純粋なJavaの方法はないと思います。私たちのプロジェクトでは、コマンドラインからの「sc」コマンドの呼び出しのラッパーを作成しました。サービスのステータスを取得するには、次のようにします。

sc \\ some-computer query "my service name"

出力を手動で解析する必要がありますが、それは非常に簡単です。

于 2008-09-24T14:12:30.037 に答える
0

ライブラリについては知りませんが、必要な詳細に応じて、いくつかのシェルコマンドと出力の解析でうまくいくかもしれません。

NET STARTサービス名

サービスを開始するか、既に開始されていることを示すエラー メッセージを返します。ただし、ステータスを表示するだけのコマンドは知りません。

于 2008-09-24T14:03:24.643 に答える