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 企业版 Linux 里将 JBoss EAP 配置为服务
自定义
jboss-eap.conf文件里的 start-up 选项。startup 脚本和相关的配置文件位于
EAP_HOME/bin/init.d/目录。用文本编辑器打开jboss-eap.conf并为您的 JBoss EAP 安装设置选项。jboss-eap.conf文件里有几个选项,但您必须至少为JBOSS_HOME和JBOSS_USER提供正确的值。您可以自定义配置文件里提供的其他选项(取消注释相关的行并进行编辑)。但如果没有这样做,服务会用默认的配置文件启动独立模式的 JBoss EAP 服务器。
注意如果您想以管理域的模式启动 JBoss EAP,请在
jboss-eap.conf里添加JBOSS_MODE=domain。要设置自定义域配置文件,添加
JBOSS_DOMAIN_CONFIG=DOMAIN_CONFIG_FILE.xml和JBOSS_HOST_CONFIG=HOST_CONFIG_FILE.xml。在默认情况下,JBoss EAP 使用domain.xml和host.xml作为域配置文件。复制服务文件到系统目录里。
复制修改的服务配置文件至
/etc/default目录。sudo cp EAP_HOME/bin/init.d/jboss-eap.conf /etc/default
复制服务器启动脚本至
/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
用
chkconfig服务管理命令将新的jboss-eap-rhel.sh服务添加到自动启动服务列表里:sudo chkconfig --add jboss-eap-rhel.sh
用下列命令测试服务是否已正确安装:
对于 Red Hat Enterprise Linux 6:
sudo service jboss-eap-rhel.sh start
对于 Red Hat Enterprise Linux 7:
sudo service jboss-eap-rhel start
服务将启动。如果您遇到错误,请查看错误日志并确保配置文件里的选项已正确设置。
要使服务在 Red Hat Enterprise Linux 服务器启动时自动启动,请运行下列命令:
sudo chkconfig jboss-eap-rhel.sh on
如果您想删除 JBoss EAP 服务,请使用下列步骤。
删除 Red Hat Enterprise Linux 里的 JBoss EAP 服务
如果服务已运行,请打开一个终端窗口并用下列命令停止服务。
对于 Red Hat Enterprise Linux 6:
sudo service jboss-eap-rhel.sh stop
对于 Red Hat Enterprise Linux 7:
sudo service jboss-eap-rhel stop
从服务列表里删除 JBoss EAP:
sudo chkconfig --del jboss-eap-rhel.sh
删除服务配置文件及启动脚本:
sudo rm /etc/init.d/jboss-eap-rhel.sh sudo rm /etc/default/jboss-eap.conf
4.2. 在 Red Hat Enterprise Linux(RPM 安装)里将 JBoss EAP 配置为服务
预备条件
- 以RPM 方式安装 JBoss EAP。
- 服务器上的管理员权限。
通过 RPM 安装的 JBoss EAP 会安装将 JBoss EAP 作为服务运行所需的所有内容。请用下列命令激活在系统引导时自动启动的 JBoss EAP 服务。
对于以下命令,使用 eap7-standalone(独立 JBoss EAP 服务器)或 eap7-domain(管理域)替换 EAP_SERVICE_NAME。
对于 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. 配置 JBoss EAP 为 Microsoft Windows 服务器里的服务
在 Windows 服务器命令行提示下使用 set 命令设置的环境变量并不会持久化,您必须使用 setx 命令或控制面板里的系统界面来进行设置。
配置 JBoss EAP 为 Microsoft Windows 服务器里的服务
创建两个系统环境变量:
-
指向 JBoss EAP 安装目录的
JBOSS_HOME。 -
NOPAUSE=1
-
指向 JBoss EAP 安装目录的
安装 JBoss Core Services Jsvc 软件包
如果还没有配置,请下载并解压 JBoss Core Services Jsvc 软件包。
- 打开浏览器并登录客户门户网站:JBoss 软件下载页面。
- 从 Product 下拉菜单里选择 Apache Jsvc。
- 从 Version 下拉菜单里选择最新的版本。
- 在列表里找到 Red Hat JBoss Core Services Apache Jsvc,确保您选择了对应您的系统的正确平台和架构,然后点击 Download 链接。
在包含 JBoss EAP 安装目录的目录里解压下载的 ZIP 文件。
这将导致
jbcs-jsvc-<VERSION>目录具有和 JBoss EAP 安装目录相同的深度。例如:C:\Program Files ├── jboss-eap-7.0 │ ├── bin │ └── ... └── jbcs-jsvc-<VERSION>
安装服务
打开终端窗口并进入
EAP_HOME\bin。下面是一个为独立服务器或受管域里的服务器创建新服务的基本
service.bat install命令。关于可用选项的列表,请不带参数运行service.bat。执行下列命令,按要求为服务调整日志级别:
对于独立服务器:
service.bat install /loglevel INFO
对于受管域里的服务器:
使用
/host参数指定由服务控制的 JBoss EAP 主机控制器的名称。您可以在管理 CLI 中执行ls /host查看名称。在以下命令中,使用 JBoss EAP 主机控制器名替换
EAP_HOST_NAME,如果没有为/host参数提供一个 JBoss EAP 主机控制器名,它的默认值为master。service.bat install /host EAP_HOST_NAME /loglevel INFO
名为
JBossEAP 7的新 Windows 服务将被创建。在
Services控制器里检验新的服务打开 Windows Services 控制台(
services.msc)并检验服务是否已被创建。如果使用了默认的服务名称,那么在 Windows 服务列表里,这个新服务的名称将是:
JBossEAP7。你可以从服务控制台启动和停止服务,并修改如何启动和何时启动等设置。通过终端窗口启动和停止 JBoss EAP 服务
要从终端窗口启动服务,使用下列命令,有需要的话可以修改服务名称:
net start JBossEAP7
在终端窗口里使用下列命令停止这个服务,有需要的话可以修改服务名称:
net stop JBossEAP7
如果您想删除 JBoss EAP 服务,请使用下列步骤。
删除 Microsoft Windows 服务器里的 JBoss EAP 服务
如果服务正在运行,请首先打开一个终端窗口并执行
net stop(加上服务的名称)来停止服务:net stop JBossEAP7
打开终端窗口并进入
EAP_HOME\bin,执行下列命令:service.bat uninstall
4.4. 用 Jsvc 将 JBoss EAP 配置为服务
JBoss Core Services Collection 中的 Apache Jsvc 组件可以被用来在 Red Hat Enterprise Linux 和 Solaris 上,以后台服务的形式运行 JBoss EAP。
在 Red Hat Enterprise Linux 上,我们推荐您使用原生方法来将 JBoss EAP 作为服务运行。
Jsvc 是一系列允许 Java 应用程序作为后台服务运行在类 Unix 平台里的库和应用程序。它允许应用程序作为特权用户执行操作,然后将其身份切换到非特权用户。
Jsvc 使用三个进程:launcher、controller 和 controlled 进程。controlled 进程也是主 Java 线程。如果 JVM 崩溃,controller 进程将在 60 秒内重启它。Jsvc 是 JBoss EAP 的守护进程,它只能由特权用户启动。
安装 JBoss Core Services Jsvc 软件包
- 对于通过 ZIP 或安装程序完成的安装:
- 打开浏览器并登录客户门户网站:JBoss 软件下载页面。
- 从 Product 下拉菜单里选择 Apache Jsvc。
- 从 Version 下拉菜单里选择最新的版本。
- 在列表里找到 Red Hat JBoss Core Services Apache Jsvc,确保您选择了对应您的系统的正确平台和架构,然后点击 Download 链接。
在包含 JBoss EAP 安装目录的目录里解压下载的 ZIP 文件。
这将导致
jbcs-jsvc-<VERSION>目录具有和 JBoss EAP 安装目录相同的深度。例如:/var/opt/ ├── jboss-eap-7.0 │ ├── bin │ └── ... └── jbcs-jsvc-<VERSION>
使用 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 安装:
- 登录 Red Hat Subscription Manager。
- 点击 Subscriber Inventory 里的 Systems。
根据您的操作系统版本和架构订阅相应的 JBoss Core Services CDN 资料库。
对于 Red Hat Enterprise Linux 6:
- jb-coreservices-1-for-rhel-6-server-rpms
对于 Red Hat Enterprise Linux 7:
- jb-coreservices-1-for-rhel-7-server-rpms
以根用户运行下列命令来安装 Jsvc:
# yum groupinstall jbcs-jsvc
确认设置了 JAVA_HOME 系统环境变量。
使用 Jsvc 将 JBoss EAP 作为独立服务器启动
下面的命令用 Jsvc 启动和停止独立模式的 JBoss EAP。下表展示了在 ZIP/安装程序或 RPM 安装模式下命令所需的路径。
表 4.1. ZIP 安装模式下的 Jsvc 文件位置 - 独立服务器模式
| 参考文件说明 | 文件位置 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
表 4.2. RPM 安装模式下的 Jsvc 文件位置 - 独立服务器模式
| 参考文件说明 | 文件位置 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
用 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/安装程序或 RPM 安装模式下命令所需的路径。
表 4.3. ZIP 安装模式下的 Jsvc 文件位置 - 受管域模式
| 参考文件说明 | 文件位置 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
表 4.4. RPM 安装模式下的 Jsvc 文件位置 - 受管域模式
| 参考文件说明 | 文件位置 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
在执行下列命令前,请务必设置环境变量 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