第4章 サービスとして実行するよう JBoss EAP を設定

4.1. Red Hat Enterprise Linux で JBoss EAP をサービスとして設定 (ZIP およびインストーラーによるインストール)

要件

Red Hat Enterprise Linux で JBoss EAP をサービスとして設定

  1. jboss-eap.conf ファイルの起動オプションをカスタマイズします。

    起動スクリプトと関連する設定ファイルは EAP_HOME/bin/init.d/ ディレクトリーにあります。テキストエディターで jboss-eap.conf を開き、JBoss EAP インストールのオプションを設定します。

    jboss-eap.conf ファイルには複数のオプションがありますが、最低でも JBOSS_HOMEJBOSS_USER の正しい値を指定する必要があります。

    設定ファイルの他のオプションをカスタマイズすることもできますが、カスタマイズしないと、デフォルトの設定ファイルを使用するスタンドアロン JBoss EAP サーバーが起動されます。

    注記

    サービスがドメインモードで JBoss EAP を起動するようにするには、JBOSS_MODE=domainjboss-eap.conf に追加します。

  2. サービスファイルをシステムディレクトリーにコピーします。

    1. 変更したサービス設定ファイルを /etc/default ディレクトリーにコピーします。

      sudo cp EAP_HOME/bin/init.d/jboss-eap.conf /etc/default
    2. サービス起動スクリプトを /etc/init.d ディレクトリーにコピーし、実行パーミッションを付与します。

      sudo cp EAP_HOME/bin/init.d/jboss-eap-rhel.sh /etc/init.d
      sudo chmod +x /etc/init.d/jboss-eap-rhel.sh
  3. chkconfig サービス管理コマンドを使用して、自動的に起動されるサービスのリストに新しい jboss-eap-rhel.sh サービスを追加します。

    sudo chkconfig --add jboss-eap-rhel.sh
  4. 以下のコマンドの 1 つを使用して、サービスが正しくインストールされたことをテストします。

    1. Red Hat Enterprise Linux 6 の場合

      sudo service jboss-eap-rhel.sh start
    2. Red Hat Enterprise Linux 7 の場合

      sudo service jboss-eap-rhel start

    サービスが起動します。エラーが発生した場合はエラーログを確認し、設定ファイルのオプションが正しく設定されていることを確認してください。

  5. Red Hat Enterprise Linux サーバーの起動時にサービスが自動的に起動するようにするには、以下のコマンドを実行します。

    sudo chkconfig jboss-eap-rhel.sh on

JBoss EAP サービスを削除する場合は、以下の手順に従います。

Red Hat Enterprise Linux での JBoss EAP サービスの削除

  1. サービスが実行中である場合は、ターミナルを開き、以下のコマンドの 1 つを使用してサービスを停止します。

    1. Red Hat Enterprise Linux 6 の場合

      sudo service jboss-eap-rhel.sh stop
    2. Red Hat Enterprise Linux 7 の場合

      sudo service jboss-eap-rhel stop
  2. サービスのリストから JBoss EAP を削除します。

    sudo chkconfig --del jboss-eap-rhel.sh
  3. サービス設定ファイルと起動スクリプトを削除します。

    sudo rm /etc/init.d/jboss-eap-rhel.sh
    sudo rm /etc/default/jboss-eap.conf

4.2. Red Hat Enterprise Linux で JBoss EAP をサービスとして設定 (RPM インストール)

要件

  • JBoss EAP を RPM インストールとしてインストールします。
  • サーバーの管理者特権。

JBoss EAP の RPM インストールは、JBoss EAP をサービスとして実行するために必要なものをすべてインストールします。以下のコマンドの 1 つを実行して、システム起動時に自動的に開始するよう JBoss EAP サービスをアクティブ化します。

スタンドアロンサーバーの場合:

chkconfig eap7-standalone on

管理対象ドメインの場合:

chkconfig eap7-domain on

必要時に JBoss EAP のRPM インストールを開始または停止する場合は、JBoss EAP Configuration GuideRPM instructions を参照してください。

注記

詳細とオプションについては、JBoss EAP Configuration GuideRPM service configuration files appendix を参照してください。

4.3. Microsoft Windows Server で JBoss EAP をサービスとして設定

要件

  • JBoss EAP を ZIP または インストーラー でインストールします。
  • サーバーの管理者特権。
  • JAVA_HOME システム環境変数を設定する必要があります。
  • JBoss EAP 7 サーバーインスタンスが実行されていない必要があります。
重要

set コマンドを使用して Windows Server コマンドプロンプトでシステム環境変数を設定すると、環境変数は永続的に設定されません。setx コマンドを使用するか、コントロールパネルシステムインターフェースを使用する必要があります。

Microsoft Windows Server で JBoss EAP をサービスとして設定

  1. 以下の 2 つのシステム環境変数を作成します。

    • JBoss EAP インストールディレクトリーを示す JBOSS_HOME
    • NOPAUSE=1
  2. JBoss Core Services Jsvc パッケージのインストール

    設定されていない場合は、JBoss Core Services Jsvc パッケージをダウンロードし、展開します。

    1. ブラウザーを開き、Red Hat カスタマーポータルで JBoss の Software Downloads ページにログインします。
    2. Product ドロップダウンメニューから Apache Jsvc を選択します。
    3. Version ドロップダウンメニューで最新のバージョンを選択します。
    4. システムのプラットフォームとアーキテクチャーに対応する Red Hat JBoss Core Services Apache Jsvc を見つけ、Download リンクをクリックします。
    5. JBoss EAP インストールディレクトリーが含まれるディレクトリーでダウンロードした ZIP ファイルを展開します。

      展開すると、JBoss EAP インストールディレクトリーと同じ階層にjbcs-jsvc-<VERSION> ディレクトリーが作成されます。例を以下に示します。

      C:\Program Files
      ├── jboss-eap-7.0
      │   ├── bin
      │   └── ...
      └── jbcs-jsvc-<VERSION>
  3. サービスのインストール

    ターミナルを開き、EAP_HOME\bin ディレクトリーに移動します。

    以下は、スタンドアロンサーバーまたは管理対象ドメインのサーバーに新しいサービスを作成する基本的な service.bat install コマンドの例になります。可能なオプションをすべて表示するには、引数を指定せずに service.bat を実行します。

    以下のコマンドを実行します。サービスのログレベルは必要に応じて変更してください。

    1. スタンドアロンサーバーの場合:

      service.bat install /loglevel INFO
    2. 管理対象ドメインのサーバーの場合

      デフォルトマスターを JBoss EAP ドメインコントローラーとして使用していない場合は、master を JBoss EAP ドメインコントローラーの正しいホスト名またはエイリアスに置き換えてください。

      service.bat install /host master /loglevel INFO

    JBossEAP7 という名前の新しい Windows サービスが作成されます。

  4. Services コンソールでの新規サービスの検証

    Windows の Services コンソール (services.msc) を開き、サービスが作成されたことを確認します。

    デフォルトのサービス名が使用された場合は、Windows サービスのリストに新しいサービスの名前 JBoss EAP7 が表示されます。サービスコンソールからサービスを起動および停止でき、さらにサービスの起動方法および起動時に関する設定を変更できます。

  5. ターミナルから JBoss EAP サービスを起動および停止

    ターミナルからサービスを起動するには、以下のコマンドを使用します (必要な場合は、サービス名を変更します)。

    net start JBossEAP7

    ターミナルからサービスを停止するには、以下のコマンドを使用します (必要な場合は、サービス名を変更します)。

    net stop JBossEAP7

JBoss EAP サービスを削除する場合は、以下の手順に従います。

Microsoft Windows Server の JBoss EAP サービスの削除

  1. サービスが実行中の場合は、最初にターミナルを開き、net stop コマンドをサービスの名前で実行してサービスを停止します。

    net stop JBossEAP7
  2. ターミナルで EAP_HOME\bin ディレクトリーに移動し、以下のコマンドを実行します。

    service.bat uninstall

4.4. Jsvc を使用して JBoss EAP をサービスとして設定

Jsvc の JBoss Core Services パッケージを使用すると Red Hat Enterprise Linux および Solaris で JBoss EAP をバックグラウンドサービスとして実行できます。

注記

Red Hat Enterprise Linux では、ネイティブメソッド を使用して JBoss EAP をサービスとして実行することが推奨されます。

Jsvc は、Java アプリケーションをバックグラウンドサービスとして UNIX 系プラットフォーム上で実行できるようにするライブラリーとアプリケーションのセットです。これにより、アプリケーションは特権ユーザーとして操作を実行でき、実行後に非特権ユーザーに切り替えできます。

Jsvc はランチャープロセス、コントローラープロセス、および制御されたプロセスの 3 つのプロセスを使用します。制御されたプロセスはメインの Java スレッドでもあります。JVM がクラッシュすると、コントローラープロセスが 60 秒以内に JVM を再起動します。Jsvc はデーモンプロセスで、JBoss EAP 7 では特権ユーザーによって起動される必要があります。

JBoss Core Services Jsvc パッケージのインストール

  • ZIP またはインストーラーによるインストールの場合
  1. ブラウザーを開き、Red Hat カスタマーポータルで JBoss の Software Downloads ページにログインします。
  2. Product ドロップダウンメニューから Apache Jsvc を選択します。
  3. Version ドロップダウンメニューで最新のバージョンを選択します。
  4. システムのプラットフォームとアーキテクチャーに対応する Red Hat JBoss Core Services Apache Jsvc を見つけ、Download リンクをクリックします。
  5. JBoss EAP インストールディレクトリーが含まれるディレクトリーでダウンロードした ZIP ファイルを展開します。

    展開すると、JBoss EAP インストールディレクトリーと同じ階層にjbcs-jsvc-<VERSION> ディレクトリーが作成されます。例を以下に示します。

    /var/opt/
    ├── jboss-eap-7.0
    │   ├── bin
    │   └── ...
    └── jbcs-jsvc-<VERSION>
  6. Jsvc を使用して JBoss EAP を起動するコマンドの例では、jboss ユーザーがすでに作成されていることを仮定します。JBoss EAP のユーザーを作成していない場合は、以下のコマンドを実行し、jboss ユーザーおよびグループを作成します。

    # groupadd -f -g 185 -r jboss
    # useradd -r -u 185 -g jboss -d EAP_HOME -s /sbin/nologin -c "JBoss" jboss
  • Red Hat Enterprise Linux での RPM インストールの場合
  1. Red Hat サブスクリプションマネージャーにログインします。
  2. Subscriber Inventoryシステムをクリックします。
  3. ご使用のオペレーティングシステムバージョンとアーキテクチャーの JBoss Core Services CDN リポジトリーにサブスクライブします。

    1. Red Hat Enterprise Linux 6 の場合

      • jb-coreservices-1-for-rhel-6-server-rpms
    2. Red Hat Enterprise Linux 7 の場合

      • jb-coreservices-1-for-rhel-7-server-rpms
  4. root ユーザーで以下のコマンドを実行し、Jsvc をインストールします。

    # yum groupinstall jbcs-jsvc
Jsvc を使用して JBoss EAP をスタンドアロンサーバーとして起動
以下のコマンドは、Jsvc を使用してスタンドアロンモードの JBoss EAP を起動および停止するために使用されます。以下の表には、ZIP/インストーラー JBoss EAP インストールまたは RPM インストールのコマンドに必要なパスが示されています。

表4.1 ZIP/Installer インストールの Jsvc ファイルの場所 - スタンドアロンサーバー

手順のファイル参照ファイルの場所

JSVC_BIN

EAP_HOME/../jbcs-jsvc-<VERSION>/sbin/jsvc

JSVC_JAR

EAP_HOME/../jbcs-jsvc-<VERSION>/lib/commons-daemon.jar

CONF_DIR

EAP_HOME/standalone/configuration

LOG_DIR

EAP_HOME/standalone/log

表4.2 RPM インストールの Jsvc ファイルの場所 - スタンドアロンサーバー

手順のファイル参照ファイルの場所

JSVC_BIN

/usr/bin/jbcs-jsvc/jsvc

JSVC_JAR

/usr/bin/jbcs-jsvc/commons-daemon.jar

CONF_DIR

/opt/rh/eap7/root/usr/share/wildfly/standalone/configuration

LOG_DIR

/opt/rh/eap7/root/usr/share/wildfly/standalone/log

Jsvc を使用してスタンドアロン JBoss EAP サーバーを起動します。

JSVC_BIN \
 -outfile LOG_DIR/jsvc.out.log   \
 -errfile LOG_DIR/jsvc.err.log   \
 -pidfile LOG_DIR/jsvc.pid  \
 -user jboss \
 -D[Standalone] -XX:+UseCompressedOops -Xms1303m \
 -Xmx1303m -XX:MaxPermSize=256m \
 -Djava.net.preferIPv4Stack=true \
 -Djboss.modules.system.pkgs=org.jboss.byteman \
 -Djava.awt.headless=true \
 -Dorg.jboss.boot.log.file=LOG_DIR/server.log \
 -Dlogging.configuration=file:CONF_DIR/logging.properties \
 -Djboss.modules.policy-permissions \
 -cp EAP_HOME/jboss-modules.jar:JSVC_JAR \
 -Djboss.home.dir=EAP_HOME \
 -Djboss.server.base.dir=EAP_HOME/standalone   \
 @org.jboss.modules.Main -start-method main \
 -mp EAP_HOME/modules \
 -jaxpmodule javax.xml.jaxp-provider \
 org.jboss.as.standalone

Jsvc を使用してスタンドアロン JBoss EAP サーバーを停止します。

JSVC_BIN \
 -stop \
 -outfile LOG_DIR/jsvc.out.log   \
 -errfile LOG_DIR/jsvc.err.log   \
 -pidfile LOG_DIR/jsvc.pid  \
 -user jboss \
 -D[Standalone] -XX:+UseCompressedOops -Xms1303m \
 -Xmx1303m -XX:MaxPermSize=256m \
 -Djava.net.preferIPv4Stack=true \
 -Djboss.modules.system.pkgs=org.jboss.byteman \
 -Djava.awt.headless=true \
 -Dorg.jboss.boot.log.file=LOG_DIR/server.log \
 -Dlogging.configuration=file:CONF_DIR/logging.properties \
 -Djboss.modules.policy-permissions \
 -cp EAP_HOME/jboss-modules.jar:JSVC_JAR \
 -Djboss.home.dir=EAP_HOME \
 -Djboss.server.base.dir=EAP_HOME/standalone   \
 @org.jboss.modules.Main -start-method main \
 -mp EAP_HOME/modules \
 -jaxpmodule javax.xml.jaxp-provider \
 org.jboss.as.standalone
Jsvc を使用した JBoss EAP 管理対象ドメインの起動
以下のコマンドは、Jsvc を使用して JBoss EAP 管理対象ドメインを起動および停止するために使用されます。以下の表には、ZIP/インストーラー JBoss EAP インストールまたは RPM インストールのコマンドに必要なパスが示されています。

表4.3 ZIP/Installer インストールの Jsvc ファイルの場所 - 管理対象ドメイン

手順のファイル参照ファイルの場所

JSVC_BIN

EAP_HOME/../jbcs-jsvc-<VERSION>/sbin/jsvc

JSVC_JAR

EAP_HOME/../jbcs-jsvc-<VERSION>/lib/commons-daemon.jar

CONF_DIR

EAP_HOME/domain/configuration

LOG_DIR

EAP_HOME/domain/log

表4.4 RPM インストールの Jsvc ファイルの場所 - 管理対象ドメイン

手順のファイル参照ファイルの場所

JSVC_BIN

/usr/bin/jbcs-jsvc/jsvc

JSVC_JAR

/usr/bin/jbcs-jsvc/commons-daemon.jar

CONF_DIR

/opt/rh/eap7/root/usr/share/wildfly/domain/configuration

LOG_DIR

/opt/rh/eap7/root/usr/share/wildfly/domain/log

以下のコマンドを実行する前に、JAVA_HOME システム環境変数を設定してください。

Jsvc を使用して JBoss EAP 管理対象ドメインを起動します。

JSVC_BIN \
 -outfile LOG_DIR/jsvc.out.log   \
 -errfile LOG_DIR/jsvc.err.log   \
 -pidfile LOG_DIR/jsvc.pid  \
 -user jboss \
 -nodetach -D"[Process Controller]" -server -Xms64m \
 -Xmx512m -XX:MaxPermSize=256m \
 -Djava.net.preferIPv4Stack=true  \
 -Djboss.modules.system.pkgs=org.jboss.byteman \
 -Djava.awt.headless=true  \
 -Dorg.jboss.boot.log.file=LOG_DIR/process-controller.log \
 -Dlogging.configuration=file:CONF_DIR/logging.properties \
 -Djboss.modules.policy-permissions \
 -cp "EAP_HOME/jboss-modules.jar:JSVC_JAR" \
 org.apache.commons.daemon.support.DaemonWrapper \
 -start org.jboss.modules.Main -start-method main \
 -mp EAP_HOME/modules org.jboss.as.process-controller \
 -jboss-home EAP_HOME -jvm "${JAVA_HOME}"/bin/java \
 -mp EAP_HOME/modules -- \
 -Dorg.jboss.boot.log.file=LOG_DIR/host-controller.log \
 -Dlogging.configuration=file:CONF_DIR/logging.properties \
 -Djboss.modules.policy-permissions \
 -server -Xms64m -Xmx512m -XX:MaxPermSize=256m \
 -Djava.net.preferIPv4Stack=true \
 -Djboss.modules.system.pkgs=org.jboss.byteman \
 -Djava.awt.headless=true -- -default-jvm "${JAVA_HOME}"/bin/java \
&

Jsvc を使用して JBoss EAP 管理対象ドメインを停止します。

JSVC_BIN \
 -stop \
 -outfile LOG_DIR/jsvc.out.log   \
 -errfile LOG_DIR/jsvc.err.log   \
 -pidfile LOG_DIR/jsvc.pid  \
 -user jboss \
 -nodetach -D"[Process Controller]" -server -Xms64m \
 -Xmx512m -XX:MaxPermSize=256m \
 -Djava.net.preferIPv4Stack=true  \
 -Djboss.modules.system.pkgs=org.jboss.byteman \
 -Djava.awt.headless=true  \
 -Dorg.jboss.boot.log.file=LOG_DIR/process-controller.log \
 -Dlogging.configuration=file:CONF_DIR/logging.properties \
 -Djboss.modules.policy-permissions \
 -cp "EAP_HOME/jboss-modules.jar:JSVC_JAR" \
 org.apache.commons.daemon.support.DaemonWrapper \
 -start org.jboss.modules.Main -start-method main \
 -mp EAP_HOME/modules org.jboss.as.process-controller \
 -jboss-home EAP_HOME -jvm $JAVA_HOME/bin/java \
 -mp EAP_HOME/modules -- \
 -Dorg.jboss.boot.log.file=LOG_DIR/host-controller.log \
 -Dlogging.configuration=file:CONF_DIR/logging.properties \
 -Djboss.modules.policy-permissions \
 -server -Xms64m -Xmx512m -XX:MaxPermSize=256m \
 -Djava.net.preferIPv4Stack=true \
 -Djboss.modules.system.pkgs=org.jboss.byteman \
 -Djava.awt.headless=true -- -default-jvm $JAVA_HOME/bin/java