Javaアプリケーションを* nixデーモンまたはWindowsサービスとして実行する最良の方法は?

StackOverflow https://stackoverflow.com/questions/25530

質問

Javaアプリケーションを* NIXデーモンまたはWindowsサービスとして実行する最適な方法を探しています。 Java Service Wrapper Apache Commonsプロジェクト「jsvc」、および Apache Commonsプロジェクト「procrun」。これまでのところ、Java Service Wrapperは最良のオプションのように見えます...ライセンス製品があります。

役に立ちましたか?

解決

私は自分でJava Service Wrapperで大きな成功を収めました。他のことは見ていないが、ServiceWrapperの主な長所は次のとおりです。

  • Xプラットフォームの優れたサポート-WindowsとLinuxで使用しましたが、両方で簡単に使用できました
  • 堅実なドキュメント-ドキュメントは明確で要点があり、素晴らしい例があります
  • プラットフォームごとの深いサポート-ウィンドウサービス管理システムには、サービスラッパー(再起動なし)によって完全にサポートされる独自の機能がいくつかあります。また、Windowsでは、プロセスリストに" java.exe"の代わりにアプリ名が表示されます。
  • 標準準拠-多くのアドホックJava initスクリプトとは異なり、サービスラッパーのスクリプトはLSB標準に準拠する傾向があります。 Linux Heartbeat / HAなどの高可用性管理が必要な場合、これは非常に重要になります。

とにかく、ちょうど2セントです...:)

他のヒント

別のオプションは、 WinRun4J です。これはウィンドウのみですが、いくつかの便利な機能があります。

  • 32ビットおよび64ビットのサポート
  • イベントログとレジストリにアクセスするためのAPI
  • 他のサービスに依存するサービスを登録できます(つまり、serviceAとserviceBはserviceCの前に起動する必要があります)

オープンソースフレンドリー(CPL)なので、使用上の制限はありません。

(完全開示:このプロジェクトに取り組んでいます)。

適用する必要がある特別な属性(OSガイド付きリソース管理など)はありますか?それ以外の場合、Unixの場合、適切なinit.dスクリプトを記述し、アプリが自動的に起動するように設定することにより、アプリケーションをデーモン化できるはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top