In the ps
manual, under the section "PROCESS STATE CODES":
D uninterruptible sleep (usually IO)
R running or runnable (on run queue)
S interruptible sleep (waiting for an event to complete)
T stopped by job control signal
t stopped by debugger during the tracing
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z defunct ("zombie") process, terminated but not reaped by its parent
An R
means that the process is in the run queue. It does not in any way indicate a problem.
A process in a D
state will not handle signals straight away as it's currently stuck waiting for disk (usually, and this is where the letter D in the code comes from). This would indicate an issue if the process is stuck for a longer period of time or if multiple processes are in the same state. The problem is then probably related to high I/O load (too many processes wanting to read from a too slow disk, for example).
The additional character is also explained:
For BSD formats and when the stat keyword is used,
additional characters may be displayed:
< high-priority (not nice to other users)
N low-priority (nice to other users)
L has pages locked into memory (for real-time and custom IO)
s is a session leader
l is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+ is in the foreground process group
Related:
D
state, then yes maybe. – Kusalananda Mar 25 '19 at 18:09D
state is a valid state to be in for a process while waiting for data to be delivered from e.g. disk. There's nothing inherently bad about it. Unless, as I said, it actually gets stuck there, which would indicate an inability of the resource that it's waiting on to deliver data fast enough. – Kusalananda Mar 25 '19 at 18:11D
state? – Kusalananda Mar 25 '19 at 18:15