ctwatch - 观察合同或合同组中的事件
/usr/bin/ctwatch [-f] [-r] [-v] contract-type... | contract-id...
用户可通过 ctwatch 实用程序观察一组合同或合同类型中正在发生的事件。缺省情况下,ctwatch 会观察所有合同。
支持以下选项:
从事件队列之前开始报告事件。通常情况下,ctwatch 仅报告在其调用之后发生的事件。通过 –f 选项,也会报告在 ctwatch 调用后仍位于合同的事件队列中的任何事件(例如,未确认的关键事件)。
可靠观察所有消息。一般情况下,系统可能随时丢弃信息性事件和已确认的关键事件,所以 ctwatch 无法保证能看到所有事件。仅当调用了 ctwatch,且在其有效集中声明 {PRIV_CONTRACT_EVENT} 特权后,才能使用此选项。
请求详细事件说明。
支持下列操作数:
有效的合同类型包括:
进程合同。
有效的合同 id。
下面的列表定义了 ctwatch 报告的列标题和含义:
生成事件的合同 ID。
事件 ID。
事件是信息性事件、关键事件还是启动退出协商。值分别为 info、crit 或 neg。
事件已经确认。值为 yes 或 "no"。
合同类型。
事件的特定于类型的摘要。
example% ctwatch -r 1 CTID EVID CRIT ACK CTTYPE SUMMARY 1 2 crit no process pid 100569 was created 1 3 info no process pid 100569 encountered hardware error 1 4 info no process pid 100568 exited 1 5 info no process pid 100569 exited 1 6 crit no process contract empty
将返回以下退出值:
成功完成。
出现错误。
无效参数。
/system/contract/*
有关下列属性的说明,请参见 attributes(7):
|
用户可读的输出是 Uncommitted(未确定)。调用为 Committed(已确定)。
ctrun(1)、ctstat(1)、contract(5)、process(5)、attributes(7)、privileges(7)
只能在单个合同中或在指定了类型的单个类型中确保对事件进行排序。
ctwatch 只能观察由具有与 ctwatch 相同的有效用户 ID 的进程拥有或创作的合同所生成的事件,除非在其有效集中声明了 {PRIV_CONTRACT_OBSERVER} 特权。