1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
|
.\" Copyright (C) 1994, 1995, Daniel Quinlan <quinlan@yggdrasil.com>
.\" Copyright (C) 2002-2008, 2017, Michael Kerrisk <mtk.manpages@gmail.com>
.\" Copyright (C) 2023, Alejandro Colomar <alx@kernel.org>
.\"
.\" SPDX-License-Identifier: GPL-3.0-or-later
.\"
.TH proc_pid_status 5 2024-05-02 "Linux man-pages (unreleased)"
.SH NAME
/proc/pid/status \- memory usage and status information
.SH DESCRIPTION
.TP
.IR /proc/ pid /status
Provides much of the information in
.IR /proc/ pid /stat
and
.IR /proc/ pid /statm
in a format that's easier for humans to parse.
Here's an example:
.IP
.in +4n
.EX
.RB "$" " cat /proc/$$/status"
Name: bash
Umask: 0022
State: S (sleeping)
Tgid: 17248
Ngid: 0
Pid: 17248
PPid: 17200
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 100 100 100 100
FDSize: 256
Groups: 16 33 100
NStgid: 17248
NSpid: 17248
NSpgid: 17248
NSsid: 17200
VmPeak: 131168 kB
VmSize: 131168 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 13484 kB
VmRSS: 13484 kB
RssAnon: 10264 kB
RssFile: 3220 kB
RssShmem: 0 kB
VmData: 10332 kB
VmStk: 136 kB
VmExe: 992 kB
VmLib: 2104 kB
VmPTE: 76 kB
VmPMD: 12 kB
VmSwap: 0 kB
HugetlbPages: 0 kB # 4.4
CoreDumping: 0 # 4.15
Threads: 1
SigQ: 0/3067
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000010000
SigIgn: 0000000000384004
SigCgt: 000000004b813efb
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
CapAmb: 0000000000000000
NoNewPrivs: 0
Seccomp: 0
Seccomp_filters: 0
Speculation_Store_Bypass: vulnerable
Cpus_allowed: 00000001
Cpus_allowed_list: 0
Mems_allowed: 1
Mems_allowed_list: 0
voluntary_ctxt_switches: 150
nonvoluntary_ctxt_switches: 545
.EE
.in
.IP
The fields are as follows:
.RS
.TP
.I Name
Command run by this process.
Strings longer than
.B TASK_COMM_LEN
(16) characters (including the terminating null byte) are silently truncated.
.TP
.I Umask
Process umask, expressed in octal with a leading zero; see
.BR umask (2).
(Since Linux 4.7.)
.TP
.I State
Current state of the process.
One of
"R (running)",
"S (sleeping)",
"D (disk sleep)",
"T (stopped)",
"t (tracing stop)",
"Z (zombie)",
or
"X (dead)".
.TP
.I Tgid
Thread group ID (i.e., Process ID).
.TP
.I Ngid
NUMA group ID (0 if none; since Linux 3.13).
.TP
.I Pid
Thread ID (see
.BR gettid (2)).
.TP
.I PPid
PID of parent process.
.TP
.I TracerPid
PID of process tracing this process (0 if not being traced).
.TP
.I Uid
.TQ
.I Gid
Real, effective, saved set, and filesystem UIDs (GIDs).
.TP
.I FDSize
Number of file descriptor slots currently allocated.
.TP
.I Groups
Supplementary group list.
.TP
.I NStgid
Thread group ID (i.e., PID) in each of the PID namespaces of which
.I pid
is a member.
The leftmost entry shows the value with respect to the PID namespace
of the process that mounted this procfs (or the root namespace
if mounted by the kernel),
followed by the value in successively nested inner namespaces.
.\" commit e4bc33245124db69b74a6d853ac76c2976f472d5
(Since Linux 4.1.)
.TP
.I NSpid
Thread ID in each of the PID namespaces of which
.I pid
is a member.
The fields are ordered as for
.IR NStgid .
(Since Linux 4.1.)
.TP
.I NSpgid
Process group ID in each of the PID namespaces of which
.I pid
is a member.
The fields are ordered as for
.IR NStgid .
(Since Linux 4.1.)
.TP
.I NSsid
descendant namespace session ID hierarchy
Session ID in each of the PID namespaces of which
.I pid
is a member.
The fields are ordered as for
.IR NStgid .
(Since Linux 4.1.)
.TP
.I VmPeak
Peak virtual memory size.
.TP
.I VmSize
Virtual memory size.
.TP
.I VmLck
Locked memory size (see
.BR mlock (2)).
.TP
.I VmPin
Pinned memory size
.\" commit bc3e53f682d93df677dbd5006a404722b3adfe18
(since Linux 3.2).
These are pages that can't be moved because something needs to
directly access physical memory.
.TP
.I VmHWM
Peak resident set size ("high water mark").
This value is inaccurate; see
.IR /proc/ pid /statm
above.
.TP
.I VmRSS
Resident set size.
Note that the value here is the sum of
.IR RssAnon ,
.IR RssFile ,
and
.IR RssShmem .
This value is inaccurate; see
.IR /proc/ pid /statm
above.
.TP
.I RssAnon
Size of resident anonymous memory.
.\" commit bf9683d6990589390b5178dafe8fd06808869293
(since Linux 4.5).
This value is inaccurate; see
.IR /proc/ pid /statm
above.
.TP
.I RssFile
Size of resident file mappings.
.\" commit bf9683d6990589390b5178dafe8fd06808869293
(since Linux 4.5).
This value is inaccurate; see
.IR /proc/ pid /statm
above.
.TP
.I RssShmem
Size of resident shared memory (includes System V shared memory,
mappings from
.BR tmpfs (5),
and shared anonymous mappings).
.\" commit bf9683d6990589390b5178dafe8fd06808869293
(since Linux 4.5).
.TP
.I VmData
.TQ
.I VmStk
.TQ
.I VmExe
Size of data, stack, and text segments.
This value is inaccurate; see
.IR /proc/ pid /statm
above.
.TP
.I VmLib
Shared library code size.
.TP
.I VmPTE
Page table entries size (since Linux 2.6.10).
.TP
.I VmPMD
.\" commit dc6c9a35b66b520cf67e05d8ca60ebecad3b0479
Size of second-level page tables (added in Linux 4.0; removed in Linux 4.15).
.TP
.I VmSwap
.\" commit b084d4353ff99d824d3bc5a5c2c22c70b1fba722
Swapped-out virtual memory size by anonymous private pages;
shmem swap usage is not included (since Linux 2.6.34).
This value is inaccurate; see
.IR /proc/ pid /statm
above.
.TP
.I HugetlbPages
Size of hugetlb memory portions
.\" commit 5d317b2b6536592a9b51fe65faed43d65ca9158e
(since Linux 4.4).
.TP
.I CoreDumping
Contains the value 1 if the process is currently dumping core,
and 0 if it is not
.\" commit c643401218be0f4ab3522e0c0a63016596d6e9ca
(since Linux 4.15).
This information can be used by a monitoring process to avoid killing
a process that is currently dumping core,
which could result in a corrupted core dump file.
.TP
.I Threads
Number of threads in process containing this thread.
.TP
.I SigQ
This field contains two slash-separated numbers that relate to
queued signals for the real user ID of this process.
The first of these is the number of currently queued
signals for this real user ID, and the second is the
resource limit on the number of queued signals for this process
(see the description of
.B RLIMIT_SIGPENDING
in
.BR getrlimit (2)).
.TP
.I SigPnd
.TQ
.I ShdPnd
Mask (expressed in hexadecimal)
of signals pending for thread and for process as a whole (see
.BR pthreads (7)
and
.BR signal (7)).
.TP
.I SigBlk
.TQ
.I SigIgn
.TQ
.I SigCgt
Masks (expressed in hexadecimal)
indicating signals being blocked, ignored, and caught (see
.BR signal (7)).
.TP
.I CapInh
.TQ
.I CapPrm
.TQ
.I CapEff
Masks (expressed in hexadecimal)
of capabilities enabled in inheritable, permitted, and effective sets
(see
.BR capabilities (7)).
.TP
.I CapBnd
Capability bounding set, expressed in hexadecimal
(since Linux 2.6.26, see
.BR capabilities (7)).
.TP
.I CapAmb
Ambient capability set, expressed in hexadecimal
(since Linux 4.3, see
.BR capabilities (7)).
.TP
.I NoNewPrivs
.\" commit af884cd4a5ae62fcf5e321fecf0ec1014730353d
Value of the
.I no_new_privs
bit
(since Linux 4.10, see
.BR prctl (2)).
.TP
.I Seccomp
.\" commit 2f4b3bf6b2318cfaa177ec5a802f4d8d6afbd816
Seccomp mode of the process
(since Linux 3.8, see
.BR seccomp (2)).
0 means
.BR SECCOMP_MODE_DISABLED ;
1 means
.BR SECCOMP_MODE_STRICT ;
2 means
.BR SECCOMP_MODE_FILTER .
This field is provided only if the kernel was built with the
.B CONFIG_SECCOMP
kernel configuration option enabled.
.TP
.I Seccomp_filters
.\" commit c818c03b661cd769e035e41673d5543ba2ebda64
Number of seccomp filters attached to the process
(since Linux 5.9, see
.BR seccomp (2)).
.TP
.I Speculation_Store_Bypass
.\" commit fae1fa0fc6cca8beee3ab8ed71d54f9a78fa3f64
Speculation flaw mitigation state
(since Linux 4.17, see
.BR prctl (2)).
.TP
.I Cpus_allowed
Hexadecimal mask of CPUs on which this process may run
(since Linux 2.6.24, see
.BR cpuset (7)).
.TP
.I Cpus_allowed_list
Same as previous, but in "list format"
(since Linux 2.6.26, see
.BR cpuset (7)).
.TP
.I Mems_allowed
Mask of memory nodes allowed to this process
(since Linux 2.6.24, see
.BR cpuset (7)).
.TP
.I Mems_allowed_list
Same as previous, but in "list format"
(since Linux 2.6.26, see
.BR cpuset (7)).
.TP
.I voluntary_ctxt_switches
.TQ
.I nonvoluntary_ctxt_switches
Number of voluntary and involuntary context switches (since Linux 2.6.23).
.RE
.SH SEE ALSO
.BR proc (5)
|