在 z/OS 上使用 JCL 过程启动 IBM HTTP Server
可以准备用于从 MVS™ 系统控制台启动和停止 IBM® HTTP Server 的 JCL 过程。
通过使用 JCL 编目过程来发出 apachectl 启动和停止命令,可以从 MVS 系统控制台启动和停止 IBM HTTP Server 实例。可以使用同一过程从 MVS 系统控制台发出其他 apachectl 命令。
请将 SHAPJCL(HAPAPROC) 中的以下样本 JCL 过程复制到您的系统过程库中:
//*---------------------------------------------------------
//IHSAPACH PROC ACTION='start',
// DIR='/path/to/IHS/runtime/directory',
// CONF='conf/httpd.conf'
//*---------------------------------------------------------
//IHS EXEC PGM=BPXBATCH,
// PARM='SH &DIR/bin/apachectl -k &ACTION -f &CONF -DNO_DETACH',
// MEMLIMIT=512M
//STDOUT DD PATH='&DIR/logs/proc.output',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
//STDERR DD PATH='&DIR/logs/proc.errors',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
// PEND
警告: PARM 值的长度限制为 100 个字符。由于
PARM 值包含安装目录 (&DIR),因此,如果目录路径过长,那么总长度可能会超过 100 个字符的限制。在选择安装目录时,需要考虑路径名长度。如果安装目录路径名太长,那么
JCL 中可能会使用以符号方式链接至原始安装目录路径名的较短已命名路径。
如果您需要长度大于 100 个字符的 PARM 值,可以使用
/PARMIN DD *,SYMBOLS=JCLONLY JCL 卡,如以下示例所示:
/*------------------------------------------------------
//WEBFTNEI JOB (KOMA-Y98),'Apache NZX2 ',MSGCLASS=T,
// TIME=NOLIMIT
// EXPORT SYMLIST=*
//*-------------------------------------
// SET ACTION='start'
// SET DIR='/home/ihsa/install/webft'
// SET CONF='../../httpd/webftnei.conf'
//*-----------------------------------------------------
//IHS EXEC PGM=BPXBATCH,PARMDD=PARMIN,
// MEMLIMIT=512M
//PARMIN DD *,SYMBOLS=JCLONLY
PGM &DIR/bin/apachectl
-k &ACTION
-f &CONF
-DNO_DETACH
//*-------------------------------------------------------
//STDOUT DD SYSOUT=T
//*
//STDERR DD SYSOUT=T
//*
//
//STDOUT DD PATH='&DIR/logs/proc.output',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
//*
//STDERR DD PATH='&DIR/logs/proc.errors',
// PATHOPTS=(OWRONLY,OCREAT,OTRUNC),
// PATHMODE=(SIRUSR,SIWUSR,SIRGRP,SIWGRP)
//
/*----------------------------------------------------------
可以在 Apache HTTP Server Control Interface Web 站点中找到样本 JCL 中使用的 apachectl 命令的描述。
IBM HTTP Server 实例的缺省作业名将与已编目过程的成员名相同。Web 服务器是多进程服务器,所创建的每个额外进程都具有基于原始作业名生成的作业名。如果原始作业名的长度为 8 个字符,那么所有额外进程将具有相同的作用名。如果原始作业名的长度少于 8 个字符,那么额外进程的作业名将由添加了数字作为后缀的原始作业名组成。如果 Web 服务器是在 UNIX 环境中使用 bin/apachectl 命令启动的,那么缺省作业名将是用来运行该命令的用户标识。与作业名一样,如果该用户标识的长度为 8 个字符,那么所有额外进程将具有相同的作业名。如果用户标识的长度少于 8 个字符,那么进程的作业名将由添加了数字作为后缀的用户标识组成。
在下列示例中,使用了过程名称 WEBSRV1。请通过将 /path/to/IHS/runtime/directory 替换为此 IBM HTTP Server 实例的实际安装目录来编辑新的已编目过程。创建
SAF STARTED 概要文件,以使服务器用户标识和组与 Web 服务器启动式任务相关联:
RDEFINE STARTED WEBSRV1.* STDATA(USER(WWWSERV) GROUP(WWWGROUP) TRACE(YES))
SETROPTS RACLIST(STARTED) GENERIC(STARTED) REFRESH
- 要从 MVS 系统控制台启动服务器,请输入:
S WEBSRV1
注: 可以通过将 jobname 添加至启动命令来更改 Web 服务器作业名,例如:S WEBSRV1,JOBNAME=HTTPDWS1
最佳实践 1: 使用 8 个字符的作业名。使用 8 个字符的作业名可确保为此 Web 服务器实例创建的所有进程具有相同的作业名。要停止服务器,请输入:P WEBSRV1
注: 使用 SDSF 时,必须使用“系统命令扩展”(命令输入)屏幕来输入用于停止服务器的命令。- 在命令提示符处,输入正斜杠 (/),然后单击 Enter 键以访问“系统命令扩展”窗口。
- 在“系统命令扩展”窗口中,输入命令 S WEBSRV1,ACTION='stop'。请确保 stop 为小写形式。
- 要发出其他 apachectl 命令,请输入:
S WEBSRV1,ACTION='<command>'
- 要重新启动服务器,请输入:
您可以从 z/OS 控制台重新启动服务器。S WEBSRV1,ACTION=restart
- 要平稳地重新启动服务器,请输入:
您可以从 z/OS 控制台平稳地重新启动服务器。S WEBSRV1,ACTION=graceful
启动命令和停止命令的输出文件位于过程中的 STDOUT 和 STDERR DD JCL 语句所指定的文件中。
使用 zos_cmds 模块:如果
zos_cmds 模块处于活动状态,那么您可以使用 z/OS STOP 和
MODIFY 控制台命令。
要点: 在 httpd.conf 文件中,必须添加下面一行以激活
zos_cmds 模块:
LoadModule zos_cmds_module modules/mod_zos_cmds.so
注: 如果您未对所有进程使用一致的 8 字符作业名,那么必须确定处理
z/OS 操作员命令的进程的作业名是 Web 服务器的实例。Web 服务器在启动时,会向操作员控制台发出一条消息,用于标识将要处理操作员命令的作业。
BPXM023I (WASTST1) IHS is active. Use jobname HTTPDWS1 for MVS commands.
其中
WASTST1 是用来运行 Web 服务器的用户标识。错误日志中将会写入一个条目,也用于标识作业名。请注意,mod_zos_cmds 守护程序作业名是 HTTPDWS1。输入
MODIFY 命令时,它将针对每个具有指定作业名的作业。只有一个 Web 服务器进程会接受该命令。对于其他每个具有同一作业名的作业,系统将会发出以下消息。IEE342I MODIFY REJECTED-TASK BUSY
- 要使用停止命令停止服务器:
P HTTPDWS1
- 要使用修改命令重新启动服务器,请输入:
F HTTPDWS1,appl='restart'
- 要使用修改命令平稳地重新启动服务器,请输入:
F HTTPDWS1,appl='graceful'
BPXM023I (WASTST1) IHS is stopping
其中
WASTST1 是用来运行 Web 服务器的用户标识。最佳实践 2: 每次使用该过程时,都会覆盖输出文件。输出文件可能包含有关配置的警告消息或针对启动失败的错误消息。如果要保留多次使用该过程所生成的这些消息的日志,请将同一过程中出现的两处
PATHOPTS 选项修改为 PATHOPTS=(OCREAT,OAPPEND,OWRONLY)。有关
PATHOPTS 选项的更多信息,请参阅 z/OS®
MVS JCL Reference (SA22-7597)。可以从 z/OS 因特网资料库链接到此文档。
最佳实践 3: 不推荐使用 STDENV DD 语句。可考虑将环境变量设置添加至运行时目录中的
bin/envvars 文件,使得不管是从 JCL 还是从 UNIX 环境启动 IBM HTTP Server,这些变量都处于活动状态。
最佳实践 4: 建议使用 BPXBATCH 的 SH 参数而不是 PGM 参数。处理
PGM 参数会绕过 /etc/profile 文件中的系统缺省设置(包括 umask 设置),并且 IBM HTTP Server 创建的文件没有正确的许可权。