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.