Previous Table of Contents Next

Table 1-5 describes the fields in the long listing report.

Table 1-5 Summary of Fields in a ps - el Report

Field Description
F Hexadecimal flags, which, added together, indicate the process's current state, as follows:
00 The process has terminated. Its place in the process table is free.
01 The process is a system process and is always in memory.
02 The process is being traced by its parent.
04 The process is being traced by its parent and has been stopped.
08 The process cannot be awakened by a signal.
10 The process is currently in memory and is locked until an event completes.
20 The process cannot be swapped.
S The current state of the process, as shown by one of the following letters:
O Currently running on the processor.
S Sleeping; waiting for an I/O event to complete.
R Ready to run.
I Idle; process is being created.
Z Zombie. The process has terminated and the parent is not waiting, but the dead process is still in the process table.
T Stopped because parent is tracing the process.
X Waiting for more memory.
UID The user ID of the owner of the process.
PID The process identification number.
PPID The parent process's identification number.
C The process's CPU use (that is, an estimate of the percentage of CPU time used by the process).
PRI The process's scheduling priority. Higher numbers mean lower priority.
NI The process's nice number, which contributes to its scheduling priority. Making a process "nicer" means lowering its priority so it does not use up as much CPU time.
SZ The amount of virtual memory required by the process. This is a good indication of the demand the process puts on system memory.
TTY The terminal from which the process (or its parent) started, or a question mark to indicate there is no controlling terminal (which usually indicates a system process).
TIME The total amount of CPU time used by the process since it began.
COMD The command that generated the process.

Using the ps Report

When you need to check on which processes or daemons are running, use the ps -e option. If you need more detailed information about a process, use the ps -el options. See the ps(1) manual page for a complete list of options. With experience, you will know how the report should look and be able to to judge what is out of the ordinary.

Here are some guidelines on how to spot potential problems:

  Look for many identical jobs owned by the same user. This may result from someone running a script that starts a lot of background jobs without waiting for any of the jobs to terminate. Talk to the user to find out if that's the case. If necessary, use the kill command to terminate some of the processes. See the following section for more information on killing a process.
  Look at the TIME field for processes that have accumulated a large amount of CPU time. Such processes might be in an endless loop.
  Look at the C field to find unimportant processes that consume a large percentage of CPU time. If you do not think a process warrants so much attention, use the priocntl command to lower its priority. See the priocntl(1M) manual page for more information.
  Look at the SZ field for processes that consume too large a percentage of memory. If a process is a memory hog, kill the process. If many processes are using lots of memory, the system may need more memory.
  Watch for a runaway process that uses progressively more CPU time. You can check this by using the -f option to see the start time (STIME) of the process and by watching the TIME field for the accumulation of CPU time.

Previous Table of Contents Next