デーモンプロセスとして実行する必要があるJavaアプリケーションを作成しました。 SysVinitを使用するAmazon Linux AMIを使用していて、デーモンにすでにinitスクリプトがあるため、ファイルをどこに保存するかは少し混乱しています。
最初、私はそのフォルダに一般的なプログラムがあると推測したので、jar
そのフォルダにファイルを入れようとしました。しかし、私のプログラムは2つのライブラリを使用しているので、実際には2つのライブラリを持つ1つのファイルがあります。/usr/bin
jar
lib
フォルダとフォルダが同じフォルダにある必要があるため、jar
ファイルを挿入して/usr/bin
からライブラリを挿入するのが心配です。また、後で他のプログラムでこれらのライブラリを更新すると、システムが複雑になる可能性があると思います。誤って一部の機能が損なわれます。 、言うまでもなく、あまりにも多くのファイルがどこにも散らばっているため、状況が面倒になり始めます。/usr/lib
jar
lib
しかし、私は標準に固執するのが好きなので、私のプログラムのためのランダムなフォルダを作成し、そこに必要なものをすべて入れたくありません。
Linuxにこれらのシステムを展開する正しい方法はありますか?いくつかのライブラリが必要なJavaデーモンをデプロイする最善の方法は何ですか?
ベストアンサー1
JAR
ディレクトリにファイルを置くことは/usr/bin
まったく良い考えではありません。これにはいくつかの理由がありますが、最初で最も重要なのはセキュリティです。ある程度アプリケーションを分離する必要があります。システム全体のソフトウェアと一緒にバイナリと不明または安全でないファイルを配置すると、攻撃面が必要以上に広がります。別々のディレクトリを作成すると、論理的な分離、セキュリティなど多くの利点があります。最近読んだ本を強くお勧めします。継続的な配信。
私のアドバイス:
- 独自のホームディレクトリを使用して、このJavaアプリケーション用の別々のユーザーとグループを作成します
app-user
。 - そこにすべての成果物を配布し、
- このJavaアプリケーションを実行するsystemdデバイスまたはsysvデバイスを作成し、
app-user
ホームディレクトリからライブラリをロードします。app-user