#/* Copyright 1997, IBM Corporation # * All rights reserved # * # * Distribute freely, except: don't remove my name from the source or # * documentation (don't take credit for my work), mark your changes # * (don't get me blamed for your possible bugs), don't alter or # * remove this notice. No fee may be charged if you distribute the # * package (except for such things as the price of a disk or tape, # * postage, etc.). No warranty of any kind, express or implied, is # * included with this software; use at your own risk, responsibility # * for damages (if any) to anyone resulting from the use of this # * software rests entirely with the user. # * # * Send me bug reports, bug fixes, enhancements, requests, flames, # * etc. I can be reached as follows: # * # * John Pfuntner John_Pfuntner@tivoli.com # */ DESCRIPTION pschart is a tool that will display processes in a different way than the regular ps utility does. You may have noticed that it is often difficult to follow parent/child relationships in the output from 'ps'. pschart displays processes using indentation to convey the parent/child relationships: $ pschart pid=393219 user=PFUNTNR cmd= pid=458756 user=PFUNTNR cmd=sh -L pid=5898250 user=PFUNTNR cmd=pschart pid=1310725 user=PFUNTNR cmd=beeper There were no zombie processes pid 393219 is my TSO session running the OMVS command but there is no OpenMVS command associated with it since it was implicitly dubbed a process and not created via fork() or exec()ed. My shell is the only immediate child of my TSO session and has two children of its own: pschart, which was running in the foreground, and a program called beeper which was running in the background. The line saying "no zombie processes" indicates that no processes have terminated for which OpenMVS will allow an existing process to wait() on to obtain the status of how it terminated. If you have zombie processes, this is normally an indication that some application is not "cleaning itself up" by performing wait()'s on its children. If I was uid 0, I could see all processes in the system. INSTALLATION No makefile is provided for this program but you can still use make to compile it. It only has one source file so if you say "make pschart", make's built-in rules have enough information to know that it needs to compile and link the program. NOTE: About the time OS/390 was released, the w_getpsent() service was changed to return the ps_cmdptr component (the command string that pschart tries to print out) in a more usable format. Unfortunately, I don't know of a way to dynamically check for which format is used but I tried to make an intelligent decision at compile time. If when you run pschart it abends or doesn't include the command string, try compiling it and explicitly telling it which style buffer to expect. If the first one you try doesn't work, try the other one: OS/390 and beyond: CFLAGS="-DOS390=1" make -u pschart pre-OS/390: CFLAGS="-DOS390=0" make -u pschart