Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第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 の正しい値を指定する必要があります。

    該当する行をアンコメントおよび編集すると、設定ファイルの他のオプションをカスタマイズできます。カスタマイズしないと、デフォルトの動作としてサーバーはデフォルトの設定ファイル standalone.xml を使用して、スタンドアロン JBoss EAP サーバーを起動します。

    注記

    JBoss EAP を管理対象ドメインとして起動する場合は、JBOSS_MODE=domainjboss-eap.conf に追加します。

    カスタムの ドメイン設定ファイル を指定するには、JBOSS_DOMAIN_CONFIG=DOMAIN_CONFIG_FILE.xml および JBOSS_HOST_CONFIG=HOST_CONFIG_FILE.xml を追加します。デフォルトでは、JBoss EAP は domain.xml および host.xml をドメイン設定ファイルとして使用します。

  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 インスタンスをシステムサービスとして設定することはサポートされません。

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

以下のコマンドでは、EAP_SERVICE_NAMEeap7-standalone (スタンドアロン JBoss EAP サーバーの場合) または eap7-domain (管理対象ドメインの場合) に置き換えます。

  • Red Hat Enterprise Linux 6 の場合

    chkconfig EAP_SERVICE_NAME on
  • Red Hat Enterprise Linux 7 の場合

    systemctl enable EAP_SERVICE_NAME.service

要求に応じて JBoss EAP の RPM インストールを開始または停止するには、JBoss EAP『設定ガイド』の RPM の手順に関する情報 を参照してください。

注記

詳細やオプションについては、JBoss EAP『設定ガイド』の付録に記載されている「RPM サービス設定ファイル」を参照してください。

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.1
      │   ├── bin
      │   └── ...
      └── jbcs-jsvc-<VERSION>
  3. サービスのインストール

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

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

    重要

    /jbossuser および /jbosspass パラメーターを指定する場合は、JBoss EAP ユーザーのパスワードにハッシュ (#) またはセミコロン (;) が含まれないようにする必要があります。

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

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

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

      /host パラメーターを使用して、サービスによって制御されている JBoss EAP ホストコントローラーの名前を指定します。管理 CLI で ls /host を実行すると、名前の有効な値を表示できます。

      以下のコマンドの EAP_HOST_NAME は JBoss EAP ホストコントローラー名に置き換えてください。JBoss EAP のホストコントローラー名を提供せずに /host パラメーターを指定すると、デフォルトで master が名前として使用されます。

      service.bat install /host EAP_HOST_NAME /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 をサービスとして設定

JBoss Core Services コレクションの Apache Jsvc コンポーネントを使用すると、Red Hat Enterprise Linux および Solaris で JBoss EAP をバックグラウンドサービスとして実行できます。

注記

JBoss EAP の Jsvc サポートは、主に Microsoft Windows および Solaris 上で JBoss EAP をサービスとして実行することが目的です。Jsvc は Red Hat Enterprise Linux 上で動作しますが、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.1
      │   ├── 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. システムをクリックします。
    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
注記

必ず JAVA_HOME システム環境変数を設定してください。

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