daemonized/init.dの動作をさせるために、service
モードの埋め込みランチャースクリプトでspring-bootを使用しています。spring-boot launch-script:pid_folderのidentity-subdirectoryを避ける方法は?
しかし、sudo
を使用する必要があるため、spring-boot jarへのシンボリックリンクは/etc/init.d
ありません。我々は合格するsudo
を避けるため、プロファイル、環境などのJAVA_OPTS
で-Dspring.profiles.active=$APP_PROFILE
(sudo
を経由して始まったが、/home/appuser/.bashrc
(?)で定義されたときに、これは動作しません)
我々はいくつかの間接と、このディレクトリ・レイアウトを持っています。 app.jar start
でアプリケーションを起動すると、基本的app.jar => current/app.jar => build-xx/app.jar
[email protected]:~/apps/services$ ls
app.jar -> /home/appuser/apps/services/current/services-1.0-SNAPSHOT.jar
current -> /home/appuser/apps/services/services-1298
services-1298
起動スクリプトは、プログラムの「同一性」に基づいてPID-フォルダに追加PID-サブディレクトリを生成します。私たちにとって、これは次のようになります。特別な治療とPID-サブディレクトリservices-1.0-SNAPSHOT_homeappuserappsservicesservices-1298
を取得シンボリックリンク/etc/init.d
で使用した場合とは異なり
/home/appuser/apps/services/run/services-1.0-SNAPSHOT_homeappuserappsservicesservices-1298/services.pid
を省略している/安定したままになります。
この動的pid-subdirは、デーモンのステータスや起動/停止をデプロイメント中に確認するのが非常に難しくなります。シーケンスを正しく取得しなければならず、誰もプロセスを2回起動することを止めてしまうからです新しいID-subdirを持つ新しいインスタンス)。
だから、誰もこのpid-subdir-identity stuffが存在しなければならない理由を知っていますし、それに対処する最良の方法は何ですか? 設定が間違っていますか?
アドバイスありがとうございます。
私たちは '.conf'を使用していて、' APP_NAME'で作業しようとしましたが、環境として 'APP_NAME'を設定することは可能ですが、いくつかの異なるアプリケーションunser'/home/appuser/apps/... 'バックエンド、フロントエンド、APIなど - これは、ユーザーごとに1つのアプリケーションでのみ動作しますか? – hotzen
いいえ。私が答えてお勧めするように.confファイルを使用する場合は、参加するユーザーの数に関係なく、アプリケーションごとに環境を設定できます。 –
これは動作しません。APP_NAMEはconfファイルエントリ環境変数を介してのみ可能です。 confファイルがソースになる前にも使用されています – hotzen