jarファイルとinit.dサービスへのシンボリックリンク

jarファイルとinit.dサービスへのシンボリックリンク

フォロー中です」init.d サービスとしてインストール済み (System V)「章スプリングブートリファレンスガイド

init.dCentos 6.6では、Javaアプリケーションへのシンボリックリンクを作成できません。

走り終わった後

 sudo ln -s /var/myapp/myapp.jar /etc/init.d/myapp

私が試したとき

 chmod 500 /etc/init.d/myapp

わかりました。

chmod: cannot operate on dangling symlink `myapp'

次のようにシンボリックリンクではなく一般ファイルの権限を変更する場合:

chmod 500 myapp.jar 

もちろんシンボリックリンクはまだ壊れてから見ることはできませんservice --status-all

以下を使用してアプリケーションを起動できないため、シンボリックリンクが正しく作成されていないことを確認することもできます。

java -jar /etc/init.d/myapp

注:jar全体をコピーすると、/etc/init.d/すべてがうまく機能します。

jarファイルへのシンボリックリンクを作成することが「良い」と見なされるのか、/etc/init.d/にコピーするのかわかりません。

答え1

アプリケーションを起動するためにjarファイルをリンクする必要はありません。実行したいバイナリは、jarファイルを引数として使用するjavaです。これを行うには、initファイル(またはsystemdを使用しているシステムの場合はsysyemdユニットファイル)を作成する必要があります。スクリプトは、アプリケーションを開始および停止するために少なくとも1つの開始パラメーターと1つの停止パラメーターを処理する必要があります。次に、Javaホームディレクトリとアプリケーションを設定する別のプロジェクトを起動し、javaコマンドを実行します。使用できる初期化スクリプトテンプレートがたくさんあります。

関連情報