AIX命令参考大全,卷 2,d - h - fcinit 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 2,d - h

fcinit 命令

用途

建立或继承一个首次故障数据捕捉执行环境。

语法

在 Bourne 和 Korn shell 中:

/usr/sbin/rsct/bin/fcinit.sh [ [ -l ] [ -s {c | i } ] ] | [ -h ]

在 C shell 中:

source /usr/sbin/rsct/bin/fcinit.csh [ [ -l ] [ -s { c | i } ] ] | [ -h ]

描述

如果一个脚本程序希望使用 FFDC 接口在 AIX 错误日志、BSD 系统日志或 FFDC 错误堆栈中记录信息,则必须使用该接口。

因下面的原因,应用程序希望建立一个 FFDC 环境:

通过 FFDC 接口而希望在 AIX 错误日志或 BSD 系统日志中记录信息的任何进程,必须建立一个 FFDC 环境。如果该进程不想使用一个 FFDC 错误堆栈,则该进程能建立一个不使用 FFDC 错误堆栈的基本 FFDC 环境。当某个进程想把来自自身或者自身所创建的线程以及它所创建的任何派生进程的故障信息记录在一个 FFDC 错误堆栈中时,该进程将建立一个包含 FFDC 错误堆栈的 FFDC 错误堆栈环境。仅当某个进程的祖先进程之一要求它在一个 FFDC 错误堆栈文件中记录故障信息时,该进程将继承一个包含 FFDC 错误堆栈的 FFDC 错误堆栈环境;在其它情况下,该进程将不会在 FFDC 错误堆栈中记录故障信息。

在包含一个 FFDC 错误堆栈的 FFDC 错误堆栈环境中,保存了一个 FFDC 错误堆栈文件,这样故障信息记录在 /var/adm/ffdc/stacks 目录中的一个文件中。这些文件的命名格式是 script_name.PID.date_and_time,其中 script_name 是脚本程序的名称,PID 是脚本程序的进程标识符,date_and_time 是脚本程序执行时的日期和时间值。无论何时当该脚本程序或其子进程在 FFDC 错误堆栈中记录故障信息时,它将记录在该文件中。

要使一个进程在 FFDC 错误堆栈中记录信息,该进程必须使用 fcpushstk FFDC 接口,并且进程必须在一个已建立的 FFDC 错误堆栈环境中运行。如果不存在一个 FFDC 错误堆栈环境,或者当存在一个 FFDC 错误堆栈环境而没有使用 fcpushstk 接口时,则该进程不会在 FFDC 错误堆栈中记录信息。当不需要故障调试信息时,该功能可以使进程处于正常或“安静”方式,而且当在一个特定环境中调用进程进行调试时,使用该功能也可以获得信息。

fcinit 必须在 FFDC 客户进程环境(“源”)中执行,以使得该命令能够正确地为脚本程序设置 FFDC 环境。使用该命令的基于脚本 FFDC 客户机必须获取此命令,以使得 fcinit 在客户进程映像中执行。如果没有作到这一点,FFDC 接口程序会在自身的进程映像中执行;当 FFDC 接口程序执行结束后,FFDC 环境中的任何设置将会丢失。要演示一个基于脚本应用程序如何获取 fcinit 命令,一个 Korn Shell 将发出下列指令:

. fcinit.sh <options and arguments>

一个 C shell 脚本将会这样:

source fcinit.csh <options and arguments>

使用 fclogerr FFDC 接口的进程必须建立一个 FFDC 环境。如果进程仅希望使用 fclogerr 接口,则可以建立一个没有 FFDC 错误堆栈的 FFDC 环境。

如果已经存在一个 FFDC 环境,而脚本程序试图创建一个时,该脚本程序将会继承已存在的 FFDC 环境而不是创建自己的一个 FFDC 环境。

标志

-h
向标准输出设备上显示帮助信息并退出。不管指定的选项,不执行其它的处理。
-l
说明进程仅希望使用 AIX 错误日志。当指定了 -s 选项时,则没有必要指定本选项,因为在一个 FFDC 错误堆栈环境中允许使用 AIX 错误日志。
-s
指示要建立一个 FFDC 错误堆栈环境。要使用 fcpushstk 接口的应用程序必须指定该标志。当命令成功结束时,会为 /var/adm/ffdc/stacks 目录中的脚本程序保存一个 FFDC 错误堆栈文件。这个标志必须指定为下面两个可能的选项之一:
c
要求创建 FFDC 错误堆栈环境。如果一个祖先进程没有建立一个 FFDC 错误堆栈环境,则将建立一个。如果一个祖先进程以前建立过这样的环境,则该进程将 继承 FFDC 错误堆栈环境,就好像指定了 i 选项一样。
i
如果一个祖先进程以前建立了一个 FFDC 错误堆栈环境,则指定该环境要被继承 。如果祖先进程以前没有建立一个 FFDC 错误堆栈环境,则不会为该进程建立一个 FFDC 错误堆栈环境,且该进程不能使用一个 FFDC 错误堆栈(虽然进程可能使用 AIX 错误日志和 BSD 系统日志)。

参数

file_name
用于搜索一个 FFDC 故障标识符的文件名。可能提供多于一个的文件。如果没有给出文件名,则 fcfilter 从标准输入中读入。

退出状态

fcinit 在结束时返回下列退出状态代码:

0
成功建立了 FFDC 环境。
1
成功继承了 FFDC 环境。
2
显示帮助信息并结束进程。

fcinit 在检测到一个故障时,返回下列退出状态代码:

12
没有建立或继承 FFDC 环境 — 提供了一个未知的功能参数。
13
没有建立或继承 FFDC 错误堆栈环境 - 调用者指示应创建和继承 FFDC 环境。
14
在调用中没有建立 FFDC 环境 - 调用者已经有一个为其建立的 FFDC 环境 - 该例程可能已经执行了多次。
15
没有建立或继承 FFDC 错误堆栈环境 - 不存在一个 FFDC 错误堆栈环境,且指定了 FC_INHERIT 选项。
16
没有建立或继承 FFDC 环境 - 该例程不能修改客户的进程环境。
17
没有建立或继承 FFDC 环境 - FFDC 环境看来被损坏了,应被认为不可用了。
18
没有建立或继承 FFDC 环境 - 该例程不能分配所需的内存去修改客户的进程环境。
19
没有建立或继承 FFDC 错误堆栈环境 - 不能为调用进程保留 FFDC 错误堆栈文件 - FFDC 错误堆栈目录不存在或不能被使用。
21
没有建立或继承 FFDC 错误堆栈环境 - 不能为调用进程保留 FFDC 错误堆栈文件 - 该文件已经存在
42
没有建立或继承 FFDC 错误堆栈环境 - 系统管理员已经禁用了 FFDC 错误堆栈的创建和使用。脚本程序仅能建立一个使用 AIX 错误日志和 BSD 系统日志的基本 FFDC 环境。
99
没有建立或继承 FFDC 环境 - 在 fcinit 执行中发生了一个不可预料的内部故障。该情况需要引起客户和应用程序支持服务的注意。

示例

Korn shell 脚本要建立一个基本 FFDC 环境,仅用来使用 AIX 错误日志和 BSD 系统日志(没有使用或保存一个 FFDC 错误堆栈):

# Set up an FFDC Environment to use the AIX Error Log only. An FFDC Error
# Stack is not needed for this script.
. fcinit.sh -1
rc=$?
if ((rc != 0))
    then         print "fcinit failed with exit code of $rc"
         exit 1
fi
# Normal processing starts

某一 Korn shell 脚本要建立一个 FFDC 错误堆栈环境,该环境会导致脚本程序以及任何派生进程在 FFDC 错误堆栈中记录故障信息:

# Set up FFDC Environment to record failure information to the FFDC Error
# Stack
. fcinit.sh -sc
rc=$?
if ((rc != 0))
then    print "fcinit failed with a code of $rc"
    exit 1
fi
# Normal processing starts
注:
FFDC 客户程序可能会收到一个指示,指出 FFDC 错误堆栈环境是被继承的而不是由 fcinit 调用所创建的。这种情形发生在该进程的祖先之一已经建立了一个 FFDC 错误堆栈环境的情况下。

要从进程的父进程继承一个 FFDC 错误堆栈环境:

# Inherit an FFDC Environment from parent process if it exists - otherwise,
# operate in a normal "silent" mode
. fcinit.sh -si
rc=$?
if ((rc != 0))
then    print "fcinit failed with a code of $rc"
    exit 1
fi
# Normal processing starts

相关信息

命令:fccheckfclogerrfcpushstkfcteststk

子例程:fc_init (请参考 RSCT 首次故障数据捕捉编程指南和参考大全)

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]