.\" to see what information could be imported from that file
.\" into this file.
.\"
-.TH PROC 5 2017-09-15 "Linux" "Linux Programmer's Manual"
+.TH PROC 5 2019-08-02 "Linux" "Linux Programmer's Manual"
.SH NAME
proc \- process information pseudo-filesystem
.SH DESCRIPTION
although use of this operation is only suitable for applications that are
trusted to maintain any desired separation between the old and new security
contexts.
+.IP
Prior to Linux 2.6.28, SELinux did not allow threads within a
multi-threaded process to set their security context via this node
as it would yield an inconsistency among the security contexts of the
security context, where the bounded relation is defined in policy and
guarantees that the new security context has a subset of the permissions
of the old security context.
+.IP
Other security modules may choose to support "set" operations via
writes to this node.
.TP
In the latter case, there is nothing in this file:
that is, a read on this file will return 0 characters.
The command-line arguments appear in this file as a set of
-strings separated by null bytes (\(aq\\0\(aq),
+strings separated by null bytes (\(aq\e0\(aq),
with a further null byte after the last string.
.TP
.IR /proc/[pid]/comm " (since Linux 2.6.33)"
This file contains the initial environment that was set
when the currently executing program was started via
.BR execve (2).
-The entries are separated by null bytes (\(aq\\0\(aq),
+The entries are separated by null bytes (\(aq\e0\(aq),
and there may be a null byte at the end.
Thus, to print out the environment of process 1, you would do:
.IP
.IR [stack]
The initial process's (also known as the main thread's) stack.
.TP
-.IR [stack:<tid>] " (since Linux 3.4)"
-.\" commit b76437579d1344b612cf1851ae610c636cec7db0
+.IR [stack:<tid>] " (from Linux 3.4 to 4.4)"
+.\" commit b76437579d1344b612cf1851ae610c636cec7db0 (added)
+.\" commit 65376df582174ffcec9e6471bf5b0dd79ba05e4a (removed)
A thread's stack (where the
.IR <tid>
is a thread ID).
It corresponds to the
.IR /proc/[pid]/task/[tid]/
path.
+This field was removed in Linux 4.5, since providing this information
+for a process with large numbers of threads is expensive.
.TP
.IR [vdso]
The virtual dynamically linked shared object.
with an octal escape sequence.
As a result, it is not possible to determine whether the original
pathname contained a newline character or the literal
-.I \\\012
+.I \ee012
character sequence.
.IP
If the mapping is file-backed and the file has been deleted, the string
to the process's root directory.
.TP
(6)
-mount options: per-mount options.
+mount options: per-mount options (see
+.BR mount (2)).
.TP
(7)
optional fields: zero or more fields of the form "tag[:value]"; see below.
mount source: filesystem-specific information or "none".
.TP
(11)
-super options: per-superblock options.
+super options: per-superblock options (see
+.BR mount (2)).
.RE
.IP
Currently, the possible optional fields are
.BR getrlimit (2)).
.IP *
.IR SigPnd ", " ShdPnd :
-Number of signals pending for thread and for process as a whole (see
+ Mask (expressed in hexadecomal)
+of signals pending for thread and for process as a whole (see
.BR pthreads (7)
and
.BR signal (7)).
.IP *
.IR SigBlk ", " SigIgn ", " SigCgt :
-Masks indicating signals being blocked, ignored, and caught (see
+Masks (expressed in hexadeximal)
+indicating signals being blocked, ignored, and caught (see
.BR signal (7)).
.IP *
.IR CapInh ", " CapPrm ", " CapEff :
-Masks of capabilities enabled in inheritable, permitted, and effective sets
+Masks (expressed in hexadeximal)
+of capabilities enabled in inheritable, permitted, and effective sets
(see
.BR capabilities (7)).
.IP *
.IR CapBnd :
-Capability Bounding set
+Capability bounding set, expressed in hexadecimal
(since Linux 2.6.26, see
.BR capabilities (7)).
.IP *
.IR CapAmb :
-Ambient capability set
+Ambient capability set, expressed in hexadecimal
(since Linux 4.3, see
.BR capabilities (7)).
.IP *
.BR prctl (2)).
.IP *
.IR Cpus_allowed :
-Mask of CPUs on which this process may run
+Hexadecimal mask of CPUs on which this process may run
(since Linux 2.6.24, see
.BR cpuset (7)).
.IP *
Total size of vmalloc memory area.
.TP
.IR VmallocUsed " %lu"
-Amount of vmalloc area which is used. Since Linux 4.4, this field is no
-longer calculated, and is hard coded as 0. See
+Amount of vmalloc area which is used.
+Since Linux 4.4,
+.\" commit a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0
+this field is no longer calculated, and is hard coded as 0.
+See
.IR /proc/vmallocinfo .
.TP
.IR VmallocChunk " %lu"
-Largest contiguous block of vmalloc area which is free. Since Linux 4.4,
-this field is no longer calculated is hard coded as 0. See
+Largest contiguous block of vmalloc area which is free.
+Since Linux 4.4,
+.\" commit a5ad88ce8c7fae7ddc72ee49a11a75aa837788e0
+this field is no longer calculated and is hard coded as 0.
+See
.IR /proc/vmallocinfo .
.TP
.IR HardwareCorrupted " %lu (since Linux 2.6.32)"
.IP
.in 1n
.EX
-Num RefCount Protocol Flags Type St Path
- 0: 00000002 00000000 00000000 0001 03
- 1: 00000001 00000000 00010000 0001 01 /dev/printer
+Num RefCount Protocol Flags Type St Inode Path
+ 0: 00000002 00000000 00000000 0001 03 42
+ 1: 00000001 00000000 00010000 0001 01 1948 /dev/printer
.EE
.in
.IP
.IR St :
the internal state of the socket.
.TP
+.IR Inode :
+the inode number of the socket.
+.TP
.IR Path :
the bound pathname (if any) of the socket.
Sockets in the abstract namespace are included in the list,
.BR sysctl (2)
system call.
.IP
-String values may be terminated by either \(aq\\0\(aq or \(aq\\n\(aq.
+String values may be terminated by either \(aq\e0\(aq or \(aq\en\(aq.
.IP
Integer and long values may be written either in decimal or in
hexadecimal notation (e.g. 0x3FFF).
When writing multiple integer or long values, these may be separated
by any of the following whitespace characters:
-\(aq\ \(aq, \(aq\\t\(aq, or \(aq\\n\(aq.
+\(aq\ \(aq, \(aq\et\(aq, or \(aq\en\(aq.
Using other separators leads to the error
.BR EINVAL .
.TP
.BR ipcs (1).
These files have headers and are formatted (one IPC object per line)
for easy understanding.
-.BR svipc (7)
+.BR sysvipc (7)
provides further background on the information shown by these files.
.TP
.IR /proc/thread-self " (since Linux 3.17)"
tty drivers and line disciplines.
.TP
.I /proc/uptime
-This file contains two numbers: the uptime of the system (seconds),
-and the amount of time spent in idle process (seconds).
+This file contains two numbers (values in seconds): the uptime of the
+system (including time spent in suspend) and the amount of time spent
+in the idle process.
.TP
.I /proc/version
This string identifies the kernel version that is currently running.
.SH NOTES
Many files contain strings (e.g., the environment and command line)
that are in the internal format,
-with subfields terminated by null bytes (\(aq\\0\(aq).
+with subfields terminated by null bytes (\(aq\e0\(aq).
When inspecting such files, you may find that the results are more readable
if you use a command of the following form to display them:
.PP
.BR dmesg (1),
.BR find (1),
.BR free (1),
+.BR htop (1),
.BR init (1),
.BR ps (1),
+.BR pstree (1),
.BR tr (1),
.BR uptime (1),
.BR chroot (2),
.BR sysctl (8)
.PP
The Linux kernel source files:
-.IR Documentation/filesystems/proc.txt
+.IR Documentation/filesystems/proc.txt ,
.IR Documentation/sysctl/fs.txt ,
.IR Documentation/sysctl/kernel.txt ,
.IR Documentation/sysctl/net.txt ,