Agent Builder 完成创建资源类型的工作后,如果您选择“创建”屏幕上的“下一步”按钮,将会显示“配置”屏幕,如下图所示。 必须先创建资源类型才能存取“配置”屏幕。
启动命令 — 可以传送到任意 UNIX shell 以启动基本应用程序的完整命令行。 您必须指定此命令。 您可以在提供的字段中键入该命令,也可以使用“浏览”按钮定位包含用来启动应用程序的命令的文件。
完整的命令行中必须包含启动应用程序必需的所有内容,例如主机名、端口号、指向配置文件的路径等。 如果应用程序需要在命令行上指定一个主机名,则可以使用 Agent Builder 定义的 $hostnames 变量(请参阅使用 Agent Builder $hostnames 变量)。
请不要将命令置于双引号(““)中。
如果基本应用程序具有多个独立的进程树(每一个进程都由它自己的、由 PMF 控制的标记来启动),则您不能只指定一个命令, 而是必须创建一个文本文件,其中包含启动每一个进程树的各个命令,并且还要在“启动命令”文本字段中指定指向此文件的路径。 请参阅创建具有多个独立的进程树的资源类型,其中列出了此文件正常工作所需的一些特殊特性。
停止命令 — 可以传送到任意 UNIX shell 以停止基本应用程序的完整命令行。 您可以在提供的字段中键入该命令,也可以使用“浏览”按钮定位包含用来停止应用程序的命令的文件。 如果应用程序需要在命令行上指定一个主机名,则可以使用 Agent Builder 定义的 $hostnames 变量(请参阅使用 Agent Builder $hostnames 变量)。
此命令是可选的。 如果您不指定停止命令,则生成的代码将使用信号(位于 Stop 方法中)停止该应用程序,如下所示。
Stop 方法发送 SIGTERM 以停止应用程序,等待应用程序退出的时间长度为超时值的 80%。
如果 SIGTERM 信号未成功,则 Stop 方法发送 SIGKILL 来停止应用程序,等待应用程序退出的时间长度为超时值的 15%。
如果 SIGKILL 也未成功,则 Stop 方法将在未成功的状态下退出(超时值的剩余 5% 视为额外开销)。
请确保该停止命令在应用程序完全停止之后返回。
探测命令 — 此命令是一个可定期运行的命令,用来检查应用程序的运行状况并返回相应的退出状态值(介于 0 [成功] 和 100 [完全失败] 之间)。 此命令是可选的。 您可以键入指向该命令的完整路径,也可以使用“浏览”按钮定位包含用来探测应用程序的命令的文件。
通常,您需指定基本应用程序的简单客户机。 如果您不指定探测命令,则生成的代码仅连接到资源所用的端口(或仅从该端口上断开连接)。如果探测成功,则表明该应用程序运行正常。 探测命令仅适用于支持网络的应用程序。 Agent Builder 通常会生成探测命令,但是对于不支持网络的应用程序,Agent Builder 将禁止该探测命令。
如果应用程序需要在探测命令行上指定一个主机名,则可以使用 Agent Builder 定义的 $hostnames 变量(请参阅使用 Agent Builder $hostnames 变量)。
超时 —(针对每个命令)— 每个命令的超时值(以秒为单位)。 您可以指定新值或接受 Agent Builder 提供的缺省值(启动和停止命令的缺省超时值为 300 秒,探测命令的缺省超时值为 30 秒)。
对于很多应用程序(特别是支持网络的应用程序),必须在命令行上将主机(在该主机上应用程序进行监听并处理服务用户请求)的名称传送给应用程序。 因此,在大多数情况下,必须为目标资源类型的启动、停止和探测命令指定主机名参数(在“配置”屏幕上)。 但是,应用程序进行监听的主机的名称是群集特有的 — 该主机名是资源在群集上运行时确定的,而不能在 Agent Builder 生成资源类型代码时确定。
要解决此问题,Agent Builder 提供了您可以在启动、停止和探测命令的命令行中指定的 $hostnames 变量。 指定 $hostnames 变量时就像指定实际主机名一样,例如:
/opt/network_aware/echo_server -pport_no-l $hostnames |
当目标资源类型的资源在群集上运行时,为该资源配置的 LogicalHostname 或 SharedAddress 主机名(位于资源的 Network_resources_used 资源特性中)将替代 $hostnames 变量的值。
如果您配置的是具有多个主机名的 Network_resources_used 特性,则 $hostnames 变量中将包含所有主机名(用逗号隔开)。
Agent Builder 可以创建具有多个独立进程树的应用程序的资源类型。 从 PMF 分别监视并启动这些进程树这一方面来说,这些进程树是独立的。 PMF 用进程树自身的标记启动每一个进程树。
仅当您指定生成的资源代码为 C 时,才能通过 Agent Builder 创建具有多个独立进程树的资源类型。当指定的代码为 ksh 或 GDS 时,您无法使用 Agent Builder 创建这些资源类型。 要在已指定 ksh 或 GDS 的情况下创建这些资源类型,您必需以手动的方式编写代码。
在基本应用程序具有多个独立的进程树的情况下,不能通过仅指定一个命令行来启动该应用程序, 而是必须创建一个文本文件,并在每一行中指定指向用来启动一个应用程序进程树的命令的完整路径。 此文件中不能包含任何空行。 您需要在“配置”屏幕上的“启动命令”文本字段中指定此文本文件。
确保此文件没有执行权限以使 Agent Builder 能够区分此文件,其目的是从包含多个命令的简单可执行脚本中启动多个进程树。 如果此文本文件被赋予了执行权限,则资源将在群集上正常启用,但是所有的命令都将在一个 PMF 标记下启动,这样就无法由 PMF 分别监视和重新启动进程树。