man uaps
NAME
uaps - ps process tree listing
SYNOPSIS
uaps [-index] [-debug|-verbose] [-p pid]
[-f file | -o ps_options] [-n osname]
[-children] [-l length]
DESCRIPTION
The uaps command produces a process tree listing associating a pro-
cess with its children and ancestors.
OPTIONS
-p pid Request a pid with children and ancestors.
-f file
Replay a captured ps listing.
-n osname
Specify an operating system. Useful only when replaying
file with platform specific ps limitations. Use -d to obtain
a list of known platforms.
-o ps_options
Use alternate 'ps -o' options. The default for most plat-
forms is 'tty,user,pid,ppid,etime,time,pcpu,args'. The
'tty,user,pid,ppid,args' are always used and need not be
specified, but the 'etime,time,pcpu' resource options can be
replaced, for example: '-o cpu,vsz'. Note, different ps
implementations use different -o options, see 'man ps'. Use
'-o .' for no resources.
-index Include process index information.
-verbose
Verbose output.
-debug Include process tree debugging information.
-children
Display only children (no parents)
-l length
Specify line length for display. The default and maximum is
132. The maximum is 512.
-W width
Alias for -length.
EXAMPLES
Requesting the current process:
platinum: ./uaps -p $$
# pid ppid user ELAPSED TIME | command:children
41765 41723 kcar 4:32 0:00 | -ksh
41799 41765 kcar 0:00 0:00 | ./uaps -p 41765
41768 41799 kcar 0:00 0:00 | ps -A -o
tty,user,pid,ppid,etime,time,pcpu,args
# pid ppid user ELAPSED TIME | command:ancestors
41723 295 root 4:40 0:00 | /usr/software/sbin/sshd
295 1 root 08:57:55 0:09 | /usr/software/sbin/sshd
1 0 root 08:58:17 0:18 | /etc/init
Requesting specific resources:
platinum: ./uaps -p 41765 -o time,vsz
# pid ppid user TIME VSZ | command:children
41765 41723 kcar 0:00 784 | -ksh
41690 41765 kcar 0:00 1472 | ./uaps -p 41765 -o time,vsz
41817 41690 kcar 0:00 1728 | ps -A -o
tty,user,pid,ppid,time,vsz,args
# pid ppid user TIME VSZ | command:ancestors
41723 295 root 0:00 3044 | /usr/software/sbin/sshd
295 1 root 0:09 2472 | /usr/software/sbin/sshd
1 0 root 0:18 1560 | /etc/init
Combined with uaklogin looking for orphaned processes:
icehawk1: uaklogin -r. =ppid 1 +u root | grep -v "^#" |
nawk '{print $2}' | while read P; do
uaps -p$P -c -o. -l52
done
# pid ppid user | command:children
12294 1 mort | sh ./eclipse-2001a_2/tool
16678 12294 mort | grep -v Queue Dev
23870 12294 mort | lpstat -a
35462 23870 mort | /usr/bin/enq -q -A
35286 35462 mort | /usr/bin/enq -q -A
32634 35286 mort | ksh /usr/lib/lpd/bsdshort
19992 32634 mort | rembak -P text -S sois-ops.netpr
31296 32634 mort | /usr/bin/tr -d
37260 32634 mort | /usr/bin/awk ?BEGIN?{???#----Set
NOTES
The uaps program was written as a test/sample program for the
uaps_get() routine which gathers process information and is utilized
by the uaklogin program, but proved useful as a stand alone program.
This program works by internally piping a ps command (typically
suid) and constructing pid|ppid relationships. For additional pro-
cess filtering options (by userid, command, terminal) and for utmp
relationships use uaklogin.
The uaps command has been tested under IBM AIX 4.3 through 5.13 Dig-
ital|Compaq|HP OSF1|Tru64 4.0d, SGI IRIX 6.5, Cray UNICOS 10.0, Cray
UNICOS/MK 2.0.5, Cray UNICOS/MP 2.1, NEC SUPER-UX 12.1, various
Linux, SunOS 5.6, Mac OSX, and cygwin (Windows). The cygwin ps
implementation is very limited an does not support -o. There is a
generic mode which should work with any UNIX with no resources using
'-o tty,user,pid,ppid,args'.
Suggestions for enhancements or bug reports can be directed to
fnkac@uaf.edu.
ACKNOWLEDGEMENTS
Written at the University of Alaska Arctic Region Supercomputing
Center (ARSC).
RELATED INFORMATION
Commands: uaklogin(1), ps(1).