Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/bin/ctwatch [-f] [-r] [-v] contract-type... | contract-id...
The ctwatch utility allows a user to observe the events occurring within a set of contracts or contract types. By default, ctwatch watches all contracts.
The following options are supported:
-f
Report events starting at the front of the event queue. Normally, ctwatch reports only events which occur after it has been invoked. With the -f option, any events that still exist in the contracts' event queues when ctwatch is invoked (for example, unacknowledged critical events) are also reported.
-r
Reliably watches all messages. Normally, the system may drop informative events and acknowledged critical events at any time, so ctwatch isn't guaranteed to see them all. This option may only be used if the ctwatch is invoked with the {PRIV_CONTRACT_EVENT} privilege asserted in its effective set.
-v
Request verbose event descriptions.
The following operands are supported:
contract-type
Valid contract types are:
process
Process contracts.
contract-id
A valid contract id.
The following list defines the column headings and the meanings of a ctwatch report:
CTID
The contract ID generating the event.
EVID
The event ID.
CRIT
Whether the event is informative, critical, or initiates an exit negotiation. Values are info, crit, or neg, respectively.
ACK
The event has been acknowledged. Values are yes or "no".
CTTYPE
The contract type.
SUMMARY
A type-specific summary of the event.
Example 1 Watching a process contract
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
The following exit values are returned:
0
Successful completion.
1
An error occurred.
2
Invalid arguments.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | See below. |
Human Readable Output is Unstable. Invocation is Evolving.
ctrun(1), ctstat(1), contract(4), process(4), attributes(5), privileges(5)
Ordering of events is only guaranteed within a single contract, or within a single type when a type is specified.
ctwatch can only observe those events which are generated by contracts owned or authored by processes with the same effective user ID as ctwatch, unless the {PRIV_CONTRACT_OBSERVER} privilege is asserted in its effective set.