When I run ps xaf
I have a following output:
So my application has state code t+
. But I can't find what it means. In man ps
where is no such state code:
Does it equal to uppercase T
state code? If it is, why do I always only get T
state code when I do kill -SIGSTOP <pid>
?
Not all versions of Linux know about the t
code. It was introduced in 2.6.33 as tracing stop that is different from signal stop indicated by T
. In the latest versions of proc(5)
(2014-07-10 or later) you will find the following:
T Stopped (on a signal) or (before Linux 2.6.33)
trace stopped
t Tracing stop (Linux 2.6.33 onward)
W Paging (only before Linux 2.6.0)
X Dead (from Linux 2.6.0 onward)
x Dead (Linux 2.6.33 to 3.13 only)
K Wakekill (Linux 2.6.33 to 3.13 only)
W Waking (Linux 2.6.33 to 3.13 only)
P Parked (Linux 3.9 to 3.13 only)
In addition to the usual R,S,D,Z,T,W status codes.
See the latest version on Michael Kerrisk page.
According to task_state_array[]
from kernel sources 't' translates into "tracing stop", while 'T' is just "stopped".
/*
* The task state array is a strange "bitmap" of
* reasons to sleep. Thus "running" is zero, and
* you can test for combinations of others with
* simple bit tests.
*/
static const char * const task_state_array[] = {
"R (running)", /* 0 */
"S (sleeping)", /* 1 */
"D (disk sleep)", /* 2 */
"T (stopped)", /* 4 */
"t (tracing stop)", /* 8 */
"X (dead)", /* 16 */
"Z (zombie)", /* 32 */
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With