.ap .rm 70 .! This help file is really more intended as a guideline. It isn't really .! ready for human (er, user) consumption. But, here it is anyway.. .lm 0 1 STATUS .lm 1 .i+5;STATUS [/qualifiers] [node[,node...]] STATUS is a program for displaying information about processes. It can be set up to look just like SHOW SYSTEM, SHOW USERS, or any of a number of different but similar utilities. Its versatility comes with a price. You have to tell STATUS exactly what you want to see, and how. Usually you will just create a command procedure, or a symbol definition, that contains a version of the command that you like to use. .! Here you might want to mention any such symbols that you create .! for your users. You might want to add a subtopic that further explains .! the symbol(s) you have created for them. .! For examples, see WHO.COM and SHOW*.COM By default STATUS displays information about the node you are currently on, however, if the "Status Server" is up and running on other machines in your cluster, or DECnet, then you can get information about those machines. If you specify /CLUSTER you should get info about every node in your VAXCluster. You may also just specify a list of node names, and info on each node requested will be displayed. By itself, STATUS will do nothing. You need to tell it what to display by using the /HEADER and /DISPLAY qualifiers. You may use the /SELECT and /REJECT qualifiers to restrict which processes you get info on. STATUS can show a continuous display by using the /CONTINUOUS qualifier, or by using the /INTERVAL qualifier. .lm 0 2 Example .lm 1 This will display something similar to SHOW USERS: .blank .literal STATUS/SELECT=TERMINAL="%*" - /HEADER = " VAX/VMS Interactive Users" - /HEADER = " %time" - /HEADER = " Total number of interactive users = %ijobcnt" - /HEADER = " " - /HEADER = " Username Process Name PID Terminal" - /DISPLAY= " %12username %15prcnam %pid %14terminal %where" .end literal If you had a symbol, such as "SU" which equated to the above, you could then say things like "SU/CLUSTER", "SU NodeX", "SU/CONT". .lm 0 2 Items .lm 1 .lm 0 3 GETJPI .lm 1 .blank .literal ACCOUNT, APTCNT, ASTACT, ASTCNT, ASTEN, ASTLM, AUTHPRI, AUTHPRIV, BIOCNT, BIOLM, BUFIO, BYTCNT, BYTLM, CLINAME, CPULIM, CPUTIM, CREPRC_FLAGS, CURPRIV, DFPFC, DFWSCNT, DIOCNT, DIOLM, DIRIO, EFCS, EFCU, EFWM, ENQCNT, ENQLM, FILCNT, FILLM, FREP0VA, FREP1VA, FREPTECNT, GPGCNT, GRP, IMAGECOUNT, IMAGNAME, IMAGPRIV, JOBPRCCNT, JOBTYPE, LOGINTIM, MASTER_PID, MAXDETACH, MAXJOBS, MEM, MODE, MSGMASK, OWNER, PAGEFLTS, PAGFILCNT, PAGFILLOC, PGFLQUOTA, PHDFLAGS, PID, PPGCNT, PRCCNT, PRCLM, PRCNAM, PRI, PRIB, PROC_INDEX, PROCPRIV, SHRFILLM, SITESPEC, STATE, STS, SWPFILLOC, TABLENAME, TERMINAL, TMBU, TQCNT, TQLM, UAF_FLAGS, UIC, USERNAME, VIRTPEAK, VOLUMES, WSAUTH, WSAUTHEXT, WSEXTENT, WSPEAK, WSQUOTA, WSSIZE .end literal .lm 0 3 GETSYI .lm 1 .blank .literal BOOTTIME, CLUSTER_FSYSID, CLUSTER_FTIME, CPU, MAXPROCESSCNT, NODENAME, NODE_AREA, NODE_CSID, NODE_HWTYPE, NODE_HWVERS, NODE_NUMBER, NODE_QUORUM, NODE_SWINCARN, NODE_SWTYPE, NODE_SWVERS, NODE_SYSTEMID, NODE_VOTES, PHYSICALPAGES, SCSNODE, SCSSYSTEMID, SCSSYSTEMIDH, SID, VERSION .end literal .lm 0 3 Other .lm 1 .blank .literal BJOBCNT Number of batch processes CLUSTER_MEMBERS Names of all the current members in the cluster DEVICES Devices allocated to process ELAPSED Time since process logged in IDLECPU Time since process CPUTIM last changed IDLETERMINAL Time since last terminal I/O if terminal supports it IJOBCNT Number of interactive processes IMAGE Short form of image name IO Process DIRIO + BUFIO (GETJPI items) IPID Internal PID NJOBCNT Number of network processes ORGANIZATION Translation of logical name STATUS_ORGANIZATION PAGES Process PPGCNT + GPGCNT (GETJPI items) PHYSICAL Physical terminal name PROCCNT Number of total processes TIME Current time TYPE Type of process UPTIME Time since system booted WHERE Location of terminal (if supported) WHO Personal name of user (if supported) .end literal .lm 0 2 Qualifiers .lm 1 .lm 0 /HEADER .i+5;/HEADER="header-line" .lm 1 This specifies what to display as a header. You may have multiple header lines by specifying /HEADER multiple times. Any JPI information displayed in the header line is taken from the "Status Server" process. The qualifiers /HEADER and /DISPLAY work the same way. See the /DISPLAY qualifier for more information. .lm 0 /DISPLAY /i+5;/DISPLAY="display-line" .lm 1 This specifies what to display about each process. You may have multiple display lines by specifying /DISPLAY multiple times. You specify what you want displayed by passing a quoted string, which contains text and item specifiers. An item specifier has one of the following formats: .blank .literal % % % .end literal The field specifies the maximum length of the field. The length may start with a "-" forcing right justification, a "." meaning center justified, or a "+" or nothing meaning left justified. A length of zero ("0") is the same as not specifying a length. If the field is longer than the length than it will be truncated, depending on the justification. If left justified, it truncates the right side, if left, vice versa, if centered, then it truncates evenly on both sides. The field specifies how many characters to cut off of the field. If positive it cuts off leading characters, if negative it cuts off trailing characters. Note that the trim can start with a ".", which is simply ignored. Trimming occurs before padding/trimming caused by the justification. For a complicated example, imagine we want to display the process login time, we could use "%logintim" but that would give us something like " 1-JAN-1988 9:45:32.21", we could simple trim off the date by using "%0.12", by specifying a length of 8, we can force the trailing 3 bytes to disappear, so that "%8.12logintim" does what we want. Note that we can also say "%-8-3logintim", which works just the opposite of the above, but accomplishes the same thing, it first trims the last 3 chars, than right justifies the remaining into an 8 byte field, thus trimming off the leading date. .lm 0 /SELECT /SELECT=(item=value[,item-value...]) .lm 1 This sets up a criteria for selecting a process. If not specified, all process will be selected (unless specifically rejected by /REJECT). For instance, to display any batch jobs, network jobs, local jobs, and interactive jobs, you could use the command: .i+5;/SELECT=(TYPE=B*,JOBTYPE="N*,L*",MODE=I*) .break You may wildcard the string (as above), as well as provide a list of items (as above). .lm 0 /REJECT .i+5;/REJECT=(item=value[,...]) .lm 1 This sets up a criteria for rejecting a process. For example if you don't want to see any processes that are in the the "hibernate" state, you would use /REJECT=STATE=HIB. You may wildcard the string as well, and provide a list of items. .lm 0 /CLUSTER .i+5;/CLUSTER .lm 1 Causes each node currently active in the cluster to be displayed. Note that the "Status Server" must be running on each machine for this to work well. If a node isn't running the server, it will time out after several seconds with no harm done, just a possible waste of some time. .lm 0 /CONTINUOUS .i+5;/CONTINUOUS .lm 1 Defaults to a 2 second update, unless /INTERVAL specifies something else. This puts the display into a continuous update mode. To exit, you must hit _^C. Note that if you have requested that mutiple nodes by displayed, this will cause it to move on to the next node. This will exit the program when you hit _^C after displaying the last node you requested info on. .lm 0 /INTERVAL .i+5;/INTERVAL=n (where 'n' is in seconds). .lm 1 Determines how frequently to update the screen. This puts the display into a continuous update mode. To exit, you must hit _^C. Note that if you have requested that mutiple nodes by displayed, this will cause it to move on to the next node. This will exit the program when you hit _^C after displayig the last node you requested info on.