第2章 ApacheKaraf の開始と停止
概要
Apache Karaf は、サーバーを起動して停止するためのシンプルなコマンドラインツールを提供します。
2.1. ApacheKaraf の起動 リンクのコピーリンクがクリップボードにコピーされました!
Apache Karaf ランタイムをデプロイするデフォルトの方法として、アクティブなコンソールを備えたスタンドアロンサーバーとしてデプロイすることが挙げられます。コンソールなしでランタイムをバックグラウンドプロセスとしてデプロイすることもできます。
2.1.1. 環境の設定 リンクのコピーリンクがクリップボードにコピーされました!
環境を変更せずに、インストールの bin サブディレクトリーから直接 Karaf ランタイムを起動できます。しかし、別のフォルダーで起動する場合は、以下のように Karaf インストールの bin ディレクトリーを PATH 環境変数に追加する必要があります。
Windows
set PATH=%PATH%;InstallDir\bin
Linux/UNIX
export PATH=$PATH,InstallDir/bin`
2.1.2. コンソールモードでランタイムの起動 リンクのコピーリンクがクリップボードにコピーされました!
インストールディレクトリーから Karaf ランタイムを起動する場合は、次のコマンドを使用します。
Windows
bin\fuse.bat
Linux/UNIX
./bin/fuse
Karaf が正しく起動すると、コンソールに次のように表示されます。
Red Hat Fuse starting up. Press Enter to open the shell now...
100% [========================================================================]
Karaf started in 8s. Bundle stats: 220 active, 220 total
____ _ _ _ _ _____
| _ \ ___ __| | | | | | __ _| |_ | ___| _ ___ ___
| |_) / _ \/ _` | | |_| |/ _` | __| | |_ | | | / __|/ _ \
| _ < __/ (_| | | _ | (_| | |_ | _|| |_| \__ \ __/
|_| \_\___|\__,_| |_| |_|\__,_|\__| |_| \__,_|___/___|
Fuse (7.x.x.fuse-xxxxxx-redhat-xxxxx)
http://www.redhat.com/products/jbossenterprisemiddleware/fuse/
Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Open a browser to http://localhost:8181/hawtio to access the management console
Hit '<ctrl-d>' or 'shutdown' to shutdown Red Hat Fuse.
karaf@root()>
バージョン Fuse 6.2.1 以降、コンソールモードで起動すると、2 つのプロセスが作成されます。それらは、Karaf コンソールを実行している親プロセス ./bin/karaf と、java JVM で Karaf サーバーを実行している子プロセスです。ただし、シャットダウンの動作は以前と同じです。つまり、両方のプロセスを強制終了する Ctrl-D または osgi:shutdown のいずれかを使用して、コンソールからサーバーをシャットダウンできます。
2.1.3. サーバーモードでのランタイムの起動 リンクのコピーリンクがクリップボードにコピーされました!
サーバーモードで起動すると、ローカルコンソールなしで Apache Karaf がバックグラウンドで実行されます。次に、リモートコンソールを使用して実行中のインスタンスに接続します。詳しくは、「リモートによる接続および切断」 を参照してください。
Karaf をサーバーモードで起動するには、次のコマンドを実行します
Windows
bin\start.bat
Linux/UNIX
./bin/start
2.1.4. クライアントモードでのランタイムの起動 リンクのコピーリンクがクリップボードにコピーされました!
実稼働環境では、ローカルコンソールのみを使用してランタイムインスタンスにアクセスできるようにする場合があります。つまり、SSH コンソールポートを介してランタイムにリモートで接続できません。これを行うには、次のコマンドを使用して、クライアントモードでランタイムを起動します。
Windows
bin\fuse.bat client
Linux/UNIX
./bin/fuse client
クライアントモードで起動すると、SSH コンソールポート (通常はポート 8101) のみが抑制されます。他の Karaf サーバーポート (例: JMX 管理 RMI ポート) は通常どおり開かれます。
2.1.5. デバッグモードでの Fuse の実行 リンクのコピーリンクがクリップボードにコピーされました!
Fuse を デバッグモード で実行すると、エラーをより効率的に識別して解決するのに役立ちます。このオプションはデフォルトで無効になっています。有効にすると、Fuse はポート 5005 で JDWP ソケットを起動します。
Fuse を デバッグモード で実行するには、3 つの方法があります。
2.1.5.1. Karaf 環境変数の使用 リンクのコピーリンクがクリップボードにコピーされました!
このアプローチにより、KARAF_DEBUG 環境変数 (=1) が有効になり、次にコンテナーを起動します。
$ export KARAF_DEBUG=1
$ bin/start
2.1.5.2. Fuse debug の実行 リンクのコピーリンクがクリップボードにコピーされました!
このアプローチでは、suspend オプションが n (no) に設定されている debug を実行します。
$ bin/fuse debug
2.1.5.3. Fuse debugs の実行 リンクのコピーリンクがクリップボードにコピーされました!
このアプローチでは、suspend オプションが y (yes) に設定されている debugs を実行します。
suspend を yes に設定すると、JVM は main() の実行直前に一時停止し、デバッガーがアタッチされると実行を再開します。
$ bin/fuse debugs