web-dev-qa-db-ja.com

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

Spring Boot Reference Guideの " Installation as init.d service(System V) "の章の指示に従っています-)。

Centos6.6のinit.dで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
SeaBiscuit

アプリケーションを起動するために、jarファイルをリンクする必要はありません。開始するバイナリはJava、引数としてjarファイルを使用します。これを行うには、initファイルを作成する必要があります(またはシステムのsysyemdユニットファイルはsystemdを使用します)。スクリプトは少なくともstart引数とstop引数を処理して、アプリケーションを開始および停止します。次に、startは、アプリケーションに必要なJavaホームおよびその他のアイテムを設定し、Javaコマンド。使用できるinitスクリプトに使用できるテンプレートがいくつかあります。

2
Bram