jsvc
Java サービスをデーモンとして起動するために活用するアプリケーションを作成しています。jsvc
アプリケーションが 1024 未満のポートを使用しているにもかかわらず、作成されたファイルが別のユーザーによって所有されるように、root として実行したくないため、次のようなものを使用する必要があります。jsvc
また、クライアントが必要とするのは JVM とインストールされたバイナリのみになるように、依存関係と構成を最小限に抑えたいと考えています。
ただし、jsvc
1 つの大きな問題があるようです。特定の Unix オペレーティング システムで Java のホーム フォルダーを検出できないため、非常にイライラします。
$ ./startup.sh
Cannot locate Java home
少なくとも手動で JVM ホーム ディレクトリを設定することで、Ubuntu の問題を回避できました。
jsvc ... -home /usr/lib/jvm/default-java/ ...
ほとんどの Unix/Linux で動作するように、Bash スクリプトから Java ホーム ディレクトリを動的に決定する方法はありますか? 次のようなことをすると、夜はぐっすり眠ることができます。
JAVA_HOME="$( ... )"
jsvc ... -home "$JAVA_HOME" ...
...個々のオペレーティング システムごとにハードコーディングするのではなく、バイナリを指定して、java
その JVM/JRE のホーム ディレクトリを見つける方法はありますか?