Javaアプリケーションを* nixデーモンまたはWindowsサービスとして実行する最良の方法は?
-
09-06-2019 - |
質問
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スクリプトを記述し、アプリが自動的に起動するように設定することにより、アプリケーションをデーモン化できるはずです。
所属していません StackOverflow