See live report of process's status

Under Linux, I can use top to see a live report of what processes are running. An important field I use is the Process Status field, which shows whether a process is running, a zombie, sleeping, etc.

I was reading the Mac OS X manpage for top, but I don't see Process Status. https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/top.1.html

Is there another way of doing this from the command line in OS X? I'm debugging a program that uses fork(), so I need something that shows me a live feed of the processes currently being executed.


Solution 1:

In OS X's version of top the field is called STATE and it shows you what state the process is in. For information on the stuck state see: https://apple.stackexchange.com/a/58718/292

The ps command on OS X can also show process status. For example, ps aux includes the STATE field. And the ps man page has this to say about the field:

 state     The state is given by a sequence of characters, for example, ``RWNA''.  The first character indicates the run state of the process:

           I       Marks a process that is idle (sleeping for longer than about 20 seconds).
           R       Marks a runnable process.
           S       Marks a process that is sleeping for less than about 20 seconds.
           T       Marks a stopped process.
           U       Marks a process in uninterruptible wait.
           Z       Marks a dead process (a ``zombie'').

           Additional characters after these, if any, indicate additional state information:

           +       The process is in the foreground process group of its control terminal.
           <       The process has raised CPU scheduling priority.
           >       The process has specified a soft limit on memory requirements and is currently exceeding that limit; such a process is (necessarily) not swapped.
           A       the process has asked for random page replacement (VA_ANOM, from vadvise(2), for example, lisp(1) in a garbage collect).
           E       The process is trying to exit.
           L       The process has pages locked in core (for example, for raw I/O).
           N       The process has reduced CPU scheduling priority (see setpriority(2)).
           S       The process has asked for FIFO page replacement (VA_SEQL, from vadvise(2), for example, a large image processing program using virtual memory to sequentially
                   address voluminous data).
           s       The process is a session leader.
           V       The process is suspended during a vfork(2).
           W       The process is swapped out.
           X       The process is being traced or debugged.