启动一个永久库存监控服务器守护进程。
invscoutd [ -o] [ -p Portno] [ -b Bufsize] [ -t Timeout] [ -v Verblev]
invscoutd 命令在用户本地网络的一台机器上实现一个永久库存监控服务器守护进程。通常的客户端是运行在用户浏览器中的 Java 小应用程序,该程序是从中央库存监控 CGI 应用程序下载下来的。
守护进程的初始化包括读取命令行选项和一些本地库存监控伴随文件。当操作时,每个客户机/服务器事务涉及从一个熟悉的套接字读取文本字符串和在相同的套接字上返回一个文本报告。
守护进程在日志文件里维护它的操作记录。根据指定的冗长级别,记录日志行可能涉及启动和关闭标志、每个调用的跟踪、详细的内部程序跟踪和错误语句。根据指定的冗长级别,启动标志可能也写入标准错误中。
到守护进程套接字的客户机连接使用因特网 TCP/IP 协议。在事务中,调用客户端 applet 发送一个操作请求(作为一个 URL 编码文本字符串)到服务器守护进程。请求是通过任何 ASCII 控制字符(x00 到 x1F)来触发请求处理。
一些请求需要客户机传递其它的数据。在这种情况下,其它的数据紧跟一个在操作请求中指定长度的终止字节。
有一个例外(ACTION=PING),服务器守护进程总会返回一个写回到同一个套接字连接的伪 MIME 格式化文本报告。伪 MIME 格式甚至可以用作错误结果。守护进程通过关闭套接字终止返回文本和事务本身,产生一个调用客户机的文件结束符(EOF)指示。客户机应该在一收到 EOF 标志就在连接的结束处关闭套接字。
操作请求字符串是一个标准 URL 编码的字符串。例如:
"ACTION=actionword&NAME1=value1&NAME2&NAME3=word%xx+word+word\0"
名称 | 意义/用途 | 支持值 |
---|---|---|
ACTION | 请参阅下面的操作请求表。 | 操作请求表左侧的一栏组成了一列支持值。 |
MRDM | 允许客户机为使用/需求这个信息的任何 ACTION 提供一个(明文)密码。该值区分大小写。 | 任何 ASCII 字符串(区分大小写)。 |
DATALEN | 如果额外的二进制数据紧跟在 ACTION 字符串结束字节后,则必须给出该名称,如果没有额外的数据跟在结束字节后,则不能给出该名称。提供的整数值指定了额外的数据字节数。如果客户机试图写更多的数据,且如果操作没有接收 DATALEN 参数并废弃任何额外的数据,或者如果操作处理器检测到一个先前的错误,那么守护进程也许会过早的关闭客户机到服务器的套接字管道。带有 n 大于指定最大值的事务将立即返回一个错误代码(请参阅 -d 命令行选项)。 | 任何达到这个值的整数,该值是由给出或没有给出 -d 命令行选项指示的。 |
CLIENT | 允许客户机为使用/需要该信息的的任何 ACTION 标识其自身。 | HSC 值指示库存监测来允许某些操作,仅在 HMC 库存检测主机的控制下允许这些操作。 |
MODEL | 允许客户机为使用/需要该信息的 VPD 监测通知服务器关于服务器的型号。 | 任何最多达 25 字符(限制应用于某些机器)的 ASCII 字符串 |
SERIAL | 允许客户机为使用/需要该信息的 VPD 监测通知服务器关于服务器的序列号。 | 任何最多达 25 个字符(限制应用于某些机器)的 ASCII 字符串 |
操作 | MRDM | 描述 |
---|---|---|
PING | 不需要 | 守护进程立即关闭套接字,引起客户机的一个直接 EOF。这是唯一一个不返回结果代码或任何类型的文本的操作。例如:
"action=ping\0" <EOF> |
ECHO | 不需要 | 守护进程返回了一个文本报告,由原始未解析的请求字符串,后跟一个换行符组成。不需要密码(MRDM),但是如果提供的话,将和其它东西一起会被回送。不需要额外的数据(DATALEN),但是如果提供的话将会在请求字符串后原样回送。对于 ECHO 请求,DATALEN 将会悄悄地截短为最大2000个字符。例如:
"action=ECHO&MRDM=xyz&datalen=5\0abcde" "RESULT=0\n" "\n" "action=ECHO&MRDM=xyz&datalen=5\n" "abcde"<EOF> |
URLDECODE | 不需要 | 守护进程在解析后返回一个请求字符串的文本报告和任何后继数据的正确拷贝。不需要密码(MRDM),但是如果提供的话它将会被解析并返回。不需要额外的数据(DATALEN),但是如果提供的话,它将会被解析并返回;然而,任何实际的超出请求字符串的额外数据将被废弃。报告的每个数字行列出了原始字符串的已解析的 Name=Value 对。例如:
"action=UrlDecode&subaction=xyz\0" "RESULT=0\n" "\n" " 0: ACTION UrlDecode\n" " 1: SUBACTION xyz\n" <EOF> |
TESTPWD | 需要 | 如果 MRDM 密码有效,守护进程返回 RESULT=0。否则返回 RESULT=2。不接收额外的数据(DATALEN)并且如果目前有的话它将被废弃。例如:
"ACTION=TESTPWD&MRDM=thepassword\0" "RESULT=0\n" "\n" <EOF> |
VERSIONS | 不需要 | 守护进程库存监控本身的当前版本号。不接收额外的数据(DATALEN),如果存在的话将被废弃。例如:
"ACTION=VERSIONS\0" "RESULT=0\n" "\n" "\n" "1.2.3.4\n" "5.6.7.8\n" <EOF> |
CATALOG | 需要 | 该守护进程更新具有已传递文件数据的检测的微码目录文件。请求字符串中必须包括密码和数据长度参数。不必以 root 用户的身份为该操作执行守护进程,但该守护进程必须具有 /var/adm/invscout/microcode/catalog.mic 的文件写许可权。例如:
"ACTION=CATALOG&MRDM=xyz&DATALEN=17042\0" "...ascii 数据的 17042 字节..." "RESULT=0\n" "\n" <EOF> |
MCODES | 需要 | 守护进程执行微代码查看选项。不接收额外的数据(DATALEN),如果存在的话将被废弃。例如:
"ACTION=MCODES&MRDM=xyz\0" "RESULT=0\n" "\n" "Report Line 1\n" "Report Line 2\n" : : "Report Line N\n" <EOF> |
VPDS | 需要 | 守护进程执行 VPD 查看选项。不接收额外的数据(DATALEN),如果存在的话将被废弃。例如:
"ACTION=VPDS&MRDM=xyz\0" "RESULT=0\n" "\n" "Report Line 1\n" "Report Line 2\n" : : "Report Line N\n" <EOF> |
守护进程返回一个伪 MIME 格式的文本结果。它通过其自身返回由一个或多个 Name=Value 对构成的报头,每个一行。第一个 Name =Value 对是 RESULT=number 格式的结果代码。每个操作都返回结果代码,除了 PING 操作。
仅应用于 Java applet 的内部监控结果代码没有记录在以下信息中。
根据结果代码,一个可选的自由格式的文本报告可以紧随报头行。如果有自由格式的文本报告,报头首先被一个空行终止,比如两个连续的换行。
无论什么情况,在读取套接字报告文本的最后部分后,结果报告会被一个 EOF 指示符终止。EOF 也表示事务本身的结束。
Result= | 描述 |
---|---|
0 | 成功完成。 |
1 | 由于内存分配错误守护进程异常终止。这种情况也许会发生在父服务器守护进程中或者其中一个子服务。 |
2 | 服务子守护进程因为需求的密码(MRDM=password)丢失或无效而异常终止。 |
3 | 服务子守护进程因为操作名称-值对(ACTION=keyword)丢失或无效而异常终止。 |
4 | 服务子守护进程因为不能重新设置它的用户标识为 invscout 而异常终止。 |
21 | 服务子守护进程由于套接字输入的缓冲区溢出而异常终止。结果的文本报告部分是本地语言错误消息。客户机必须减少请求字符串的长度,或者增加缓冲区大小来杀死和重新启动守护进程。 |
22 | 服务子守护进程由于套接字读取错误而异常终止。结果的文本报告部分是一个本地语言错误消息,包括系统的 I/O 错误字符串。日志文件项也包含系统的 errno 字符串。 |
23 | 服务子守护进程由于套接字读取超时而异常终止。结果的文本报告部分是本地语言错误消息。客户机在请求字符串的结束处发送一个控制字符终止字节,并且必须总是发送 DATALEN 参数指定大小的字符串。超时周期可能会被 -t 命令行参数改变。 |
24 | 服务子守护进程由于读取请求字符串时的过早遇到 EOF 而异常终止。结果的文本报告部分是本地语言错误消息。客户机必须在关闭套接字连接前在请求字符串的结束处发送一个终止字节。 |
25 | 服务子守护进程由于对于一个它所需要的操作的 DATALEN 参数丢失或无效时异常终止。结果的文本报告对是本地语言错误消息。客户机必须为所有操作发送数据的长度,这些操作传送了超出 URL 编码的请求字符串的额外二进制数据。大多数这样的操作也要求 DATALEN 值限制在一个指定的最大大小内。 |
26 | 服务子守护进程由于通常的文件 I/O 错误,比如权限错误、超出磁盘空间等等而异常终止。结果的文本报告部分是本地语言错误消息。通常,I/O 问题必须在客户机能够再次尝试操作前在服务器上纠正。 |
27 | 因为不能为需求它的操作恢复版本号,服务子守护进程便异常终止。 |
指定任意参数,由一个连字符(-)开始。在标志和它的值之间不允许空格。
级别 | 描述 |
---|---|
0 | 禁用所有的错误和状态消息。 |
5 | 只写入致命错误的消息。致命错误导致服务器的瘫痪。通常,类似的消息同时写到 日志文件 和标准错误中。 |
10 | 写入所有错误消息。这些包括非致命错误,比如协议错误,也同样包括致命错误。非致命错误通常只写入到 日志文件。 |
15 | 这个级别包含启动和关机标志消息。简单的标志消息通常写入到 日志文件 和 标准错误中。 |
18 | 这个级别包含调用跟踪状态消息。每个客户机调用导致一个单一的跟踪消息。这是 invscoutd 守护进程的缺省级别。跟踪消息仅写到日志文件。 |
20 | 这个级别包含程序跟踪消息。程序跟踪是相当详细的程序执行状态消息,一般用于调试目的。由于超时,这个级别对于通常的产品执行并不合适,它用大量的文本来填满 日志文件。跟踪消息仅写入到日志文件。 |
25 | 这是最高级别且包含扩展程序的调试消息。这个级别对于通常的产品执行并不适合。跟踪消息仅写入到日志文件。 |
该命令返回以下退出值:
0 | 表示初始化成功 |
非 0 | 表示初始化未成功 |
守护进程必须作为一个有效用户标识 0 (root)而执行。它为 root 用户所有,并且安装时“setuid”位设为 ON 以使任何用户均可启动它。然而在某个执行点上,守护进程的子服务重新设置它们的用户标识为认证用户标识 invscout。守护进程不会执行除非用户 invscout 已经在主机系统上创建。
缺省情况下,对于大多数操作,需要从客户机获得一个随附的明文密码。如果客户机密码不匹配认证用户标识 invscout 的系统密码,那么操作将退出并有一个返回码。认证用户标识是不能改变的。
/usr/sbin/invscoutd | 包含 invscoutd 命令 |
/etc/security/password | 主机系统密码文件 |
/var/adm/invscout/microcode | 与微码相关的操作的目录。微码目录文件的缺省位置。 |
/var/adm/invscout/microcode/catalog.mic | 缺省微码目录文件。 |
/var/adm/invscout/invscout.log | 日志文件 |
invscout 命令。