第2章 Apache Karaf の開始と停止
概要
Apache Karaf は、サーバーを起動して停止するためのシンプルなコマンドラインツールを提供します。
2.1. Apache Karaf の起動
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