第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