Lines Matching +full:proc +full:- +full:id
1 .. SPDX-License-Identifier: GPL-2.0
4 The /proc Filesystem
8 /proc/sys Terrehon Bowden <terrehon@pacbell.net>, October 7 1999
11 move /proc/sys Shen Feng <shen@cn.fujitsu.com> April 1 2009
24 1.1 Process-Specific Subdirectories
26 1.3 IDE devices in /proc/ide
27 1.4 Networking info in /proc/net
29 1.6 Parallel port info in /proc/parport
30 1.7 TTY info in /proc/tty
31 1.8 Miscellaneous kernel statistics in /proc/stat
36 3 Per-Process Parameters
37 3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj - Adjust the oom-killer
39 3.2 /proc/<pid>/oom_score - Display current oom-killer score
40 3.3 /proc/<pid>/io - Display the IO accounting fields
41 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
42 3.5 /proc/<pid>/mountinfo - Information about mounts
43 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
44 3.7 /proc/<pid>/task/<tid>/children - Information about task children
45 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
46 3.9 /proc/<pid>/map_files - Information about memory mapped files
47 3.10 /proc/<pid>/timerslack_ns - Task timerslack value
48 3.11 /proc/<pid>/patch_state - Livepatch patch operation state
49 3.12 /proc/<pid>/arch_status - Task architecture specific information
60 ------------------------
64 /proc file system and we've used many freely available sources to write these
68 we know, it is the first 'all-in-one' document about the /proc file system. It
71 It also only covers IPv4 networking, not IPv6 nor other protocols - sorry. But
87 http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/proc.html
90 mailing list at linux-kernel@vger.kernel.org and/or try to reach me at
94 ---------------
104 ---------------
105 * Investigating the properties of the pseudo file system /proc and its
107 * Examining /proc's structure
111 ------------------------------------------------------------------------------
113 The proc file system acts as an interface to internal data structures in the
117 First, we'll take a look at the read-only parts of /proc. In Chapter 2, we
118 show you how you can use /proc/sys to change settings.
120 1.1 Process-Specific Subdirectories
121 -----------------------------------
123 The directory /proc contains (among other things) one subdirectory for each
124 process running on the system, which is named after the process ID (PID).
127 subdirectory has the entries listed in Table 1-1.
129 Note that an open file descriptor to /proc/<pid> or to any of its
132 open /proc/<pid> file descriptors corresponding to dead processes
134 also assigned the process ID <pid>. Instead, operations on these FDs
137 .. table:: Table 1-1: Process specific entries in /proc
156 symbol the task is blocked in - or "0" if not blocked.
168 read the file /proc/PID/status::
170 >cat /proc/self/status
217 the ps command. In fact, ps uses the proc file system to obtain its
219 file /proc/PID/status. It fields are described in table 1-2.
222 memory usage. Its seven fields are explained in Table 1-3. The stat file
224 explained in Table 1-4.
230 snapshot of a moment, you can see /proc/<pid>/smaps file and scan page table.
233 .. table:: Table 1-2: Contents of the status files (as of 4.19)
243 Tgid thread group ID
244 Ngid NUMA group ID (0 if none)
245 Pid process id
246 PPid process id of the parent process
252 NStgid descendant namespace thread group ID hierarchy
253 NSpid descendant namespace process ID hierarchy
254 NSpgid descendant namespace process group ID hierarchy
255 NSsid descendant namespace session ID hierarchy
304 .. table:: Table 1-3: Contents of the statm files (as of 2.6.8-rc3)
322 .. table:: Table 1-4: Contents of the stat files (as of 2.6.30-rc7)
327 pid process id
331 ppid process id of the parent process
333 sid session id
363 use /proc/PID/wchan instead)
384 The /proc/PID/maps file contains the currently mapped memory regions and
391 08048000-08049000 r-xp 00000000 03:00 8312 /opt/test
392 08049000-0804a000 rw-p 00001000 03:00 8312 /opt/test
393 0804a000-0806b000 rw-p 00000000 00:00 0 [heap]
394 a7cb1000-a7cb2000 ---p 00000000 00:00 0
395 a7cb2000-a7eb2000 rw-p 00000000 00:00 0
396 a7eb2000-a7eb3000 ---p 00000000 00:00 0
397 a7eb3000-a7ed5000 rw-p 00000000 00:00 0
398 a7ed5000-a8008000 r-xp 00000000 03:00 4222 /lib/libc.so.6
399 a8008000-a800a000 r--p 00133000 03:00 4222 /lib/libc.so.6
400 a800a000-a800b000 rw-p 00135000 03:00 4222 /lib/libc.so.6
401 a800b000-a800e000 rw-p 00000000 00:00 0
402 a800e000-a8022000 r-xp 00000000 03:00 14462 /lib/libpthread.so.0
403 a8022000-a8023000 r--p 00013000 03:00 14462 /lib/libpthread.so.0
404 a8023000-a8024000 rw-p 00014000 03:00 14462 /lib/libpthread.so.0
405 a8024000-a8027000 rw-p 00000000 00:00 0
406 a8027000-a8043000 r-xp 00000000 03:00 8317 /lib/ld-linux.so.2
407 a8043000-a8044000 r--p 0001b000 03:00 8317 /lib/ld-linux.so.2
408 a8044000-a8045000 rw-p 0001c000 03:00 8317 /lib/ld-linux.so.2
409 aff35000-aff4a000 rw-p 00000000 00:00 0 [stack]
410 ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso]
438 The /proc/PID/smaps is an extension based on maps, showing the memory
442 08048000-080bc000 r-xp 00000000 03:02 13130 /bin/bash
470 mapping in /proc/PID/maps. Following lines show the size of the mapping
509 "Swap" shows how much would-be-anonymous memory is also used, but out on swap.
512 replaced by copy-on-write) part of the underlying shmem object out on swap.
517 pages - 1 if true, 0 otherwise. It just shows the current status.
557 be vanished or the reverse -- new added. Interpretation of their meaning
567 Note: reading /proc/PID/maps or /proc/PID/smaps is inherently racy (consistent
579 The /proc/PID/smaps_rollup file includes the same fields as /proc/PID/smaps,
583 - Pss_Anon
584 - Pss_File
585 - Pss_Shmem
593 The /proc/PID/clear_refs is used to reset the PG_Referenced and ACCESSED/YOUNG
595 soft-dirty bit on pte (see Documentation/admin-guide/mm/soft-dirty.rst
599 > echo 1 > /proc/PID/clear_refs
603 > echo 2 > /proc/PID/clear_refs
607 > echo 3 > /proc/PID/clear_refs
609 To clear the soft-dirty bit::
611 > echo 4 > /proc/PID/clear_refs
616 > echo 5 > /proc/PID/clear_refs
618 Any other value written to /proc/PID/clear_refs will have no effect.
620 The /proc/pid/pagemap gives the PFN, which can be used to find the pageflags
621 using /proc/kpageflags and number of times a page is mapped using
622 /proc/kpagecount. For detailed explanation, see
623 Documentation/admin-guide/mm/pagemap.rst.
625 The /proc/pid/numa_maps is an extension based on maps, showing the memory
634 3206000000 default file=/lib64/ld-2.12.so mapped=26 mapmax=6 N0=24 N3=2 kernelpagesize_kB=4
635 320621f000 default file=/lib64/ld-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
636 3206220000 default file=/lib64/ld-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
638 …3206800000 default file=/lib64/libc-2.12.so mapped=59 mapmax=21 active=55 N0=41 N3=18 kernelpagesi…
639 320698b000 default file=/lib64/libc-2.12.so
640 3206b8a000 default file=/lib64/libc-2.12.so anon=2 dirty=2 N3=2 kernelpagesize_kB=4
641 3206b8e000 default file=/lib64/libc-2.12.so anon=1 dirty=1 N3=1 kernelpagesize_kB=4
653 "policy" reports the NUMA memory policy set for the mapping (see Documentation/admin-guide/mm/numa_…
660 ---------------
664 /proc and are listed in Table 1-5. Not all of these will be present in your
668 .. table:: Table 1-5: Kernel info in /proc
703 pci Deprecated info of PCI bus (new way -> /proc/bus/pci/,
721 they are used for by looking in the file /proc/interrupts::
723 > cat /proc/interrupts
725 0: 8728810 XT-PIC timer
726 1: 895 XT-PIC keyboard
727 2: 0 XT-PIC cascade
728 3: 531695 XT-PIC aha152x
729 4: 2014133 XT-PIC serial
730 5: 44401 XT-PIC pcnet_cs
731 8: 2 XT-PIC rtc
732 11: 8 XT-PIC i82365
733 12: 182918 XT-PIC PS/2 Mouse
734 13: 1 XT-PIC fpu
735 14: 1232265 XT-PIC ide0
736 15: 7 XT-PIC ide1
742 > cat /proc/interrupts
745 0: 1243498 1214548 IO-APIC-edge timer
746 1: 8949 8958 IO-APIC-edge keyboard
747 2: 0 0 XT-PIC cascade
748 5: 11286 10161 IO-APIC-edge soundblaster
749 8: 1 0 IO-APIC-edge rtc
750 9: 27422 27407 IO-APIC-edge 3c503
751 12: 113645 113873 IO-APIC-edge PS/2 Mouse
752 13: 0 0 XT-PIC fpu
753 14: 22491 24012 IO-APIC-edge ide0
754 15: 2183 2415 IO-APIC-edge ide1
755 17: 30564 30414 IO-APIC-level eth0
756 18: 177 164 IO-APIC-level bttv
766 ERR is incremented in the case of errors in the IO-APIC bus (the bus that
768 the IO-APIC automatically retry the transmission, so it should not be a big
769 problem, but you should read the SMP-FAQ.
771 In 2.6.2* /proc/interrupts was expanded again. This time the goal was for
772 /proc/interrupts to display every IRQ vector in use by the system, not
803 Of some interest is the introduction of the /proc/irq directory to 2.4.
811 > ls /proc/irq/
814 > ls /proc/irq/0/
820 > echo 1 > /proc/irq/10/smp_affinity
827 > cat /proc/irq/0/smp_affinity
833 > cat /proc/irq/0/smp_affinity_list
834 1024-1031
836 The default_smp_affinity mask applies to all non-active IRQs, which are the
838 /proc/irq/[0-9]* directory.
847 The way IRQs are routed is handled by the IO-APIC, and it's Round Robin
850 best choice for almost everyone. [Note this applies only to those IO-APIC's
853 There are three more important subdirectories in /proc: net, scsi, and sys.
866 > cat /proc/buddyinfo
885 > cat /proc/pagetypeinfo
908 X86-64. By keeping pages grouped based on their ability to move, the kernel
909 can reclaim pages within a page block to satisfy a high-order allocation.
913 by migrate-type and finishes with details on how many page blocks of each
934 > cat /proc/meminfo
992 in-memory cache for files read from the disk (the
1026 Non-file backed pages mapped into userspace page tables
1031 Non-file backed huge pages mapped into userspace page tables
1046 in-kernel data structures cache
1070 CommitLimit = ([total RAM pages] - [total huge TLB pages]) *
1078 in vm/overcommit-accounting.
1125 > cat /proc/vmallocinfo
1126 0xffffc20000000000-0xffffc20000201000 2101248 alloc_large_system_hash+0x204 ...
1128 0xffffc20000201000-0xffffc20000302000 1052672 alloc_large_system_hash+0x204 ...
1130 0xffffc20000302000-0xffffc20000304000 8192 acpi_tb_verify_table+0x21/0x4f...
1132 0xffffc20000304000-0xffffc20000307000 12288 acpi_tb_verify_table+0x21/0x4f...
1134 0xffffc2000031d000-0xffffc2000031f000 8192 init_vdso_vars+0x112/0x210
1135 0xffffc2000031f000-0xffffc2000032b000 49152 cramfs_uncompress_init+0x2e ...
1137 0xffffc2000033a000-0xffffc2000033d000 12288 sys_swapon+0x640/0xac0 ...
1139 0xffffc20000347000-0xffffc2000034c000 20480 xt_alloc_table_info+0xfe ...
1141 0xffffffffa0000000-0xffffffffa000f000 61440 sys_init_module+0xc27/0x1d00 ...
1143 0xffffffffa000f000-0xffffffffa0014000 20480 sys_init_module+0xc27/0x1d00 ...
1145 0xffffffffa0014000-0xffffffffa0017000 12288 sys_init_module+0xc27/0x1d00 ...
1147 0xffffffffa0017000-0xffffffffa0022000 45056 sys_init_module+0xc27/0x1d00 ...
1158 > cat /proc/softirqs
1171 1.3 IDE devices in /proc/ide
1172 ----------------------------
1174 The subdirectory /proc/ide contains information about all IDE devices of which
1182 > cat /proc/ide/drivers
1183 ide-cdrom version 4.53
1184 ide-disk version 1.08
1188 directories contains the files shown in table 1-6.
1191 .. table:: Table 1-6: IDE controller info in /proc/ide/ide?
1203 controllers directory. The files listed in table 1-7 are contained in these
1207 .. table:: Table 1-7: IDE device information
1227 # cat /proc/ide/ide0/hda/settings
1229 ---- ----- --- --- ----
1242 pio_mode write-only 0 255 w
1248 1.4 Networking info in /proc/net
1249 --------------------------------
1251 The subdirectory /proc/net follows the usual pattern. Table 1-8 shows the
1253 support this. Table 1-9 lists the files and their meaning.
1256 .. table:: Table 1-8: IPv6 info in /proc/net
1272 .. table:: Table 1-9: Network info in /proc/net
1308 > cat /proc/net/dev
1309 Inter-|Receive |[...
1322 example, the bond0 device will have a directory called /proc/net/bond0/.
1328 -------------
1331 named after the driver for this adapter in /proc/scsi. You'll also see a list
1332 of all recognized SCSI devices in /proc/scsi::
1334 >cat /proc/scsi/scsi
1336 Host: scsi0 Channel: 00 Id: 00 Lun: 00
1338 Type: Direct-Access ANSI SCSI revision: 03
1339 Host: scsi0 Channel: 00 Id: 06 Lun: 00
1340 Vendor: PIONEER Model: CD-ROM DR-U06S Rev: 1.04
1341 Type: CD-ROM ANSI SCSI revision: 02
1348 AHA-2940 SCSI adapter::
1350 > cat /proc/scsi/aic7xxx/0
1358 SCSI Adapter: Adaptec AHA-294X Ultra SCSI host adapter
1390 1.6 Parallel port info in /proc/parport
1391 ---------------------------------------
1393 The directory /proc/parport contains information about the parallel ports of
1397 These directories contain the four files shown in Table 1-10.
1400 .. table:: Table 1-10: Files in /proc/parport
1405 autoprobe Any IEEE-1284 device ID information that has been acquired.
1415 1.7 TTY info in /proc/tty
1416 -------------------------
1419 directory /proc/tty. You'll find entries for drivers and line disciplines in
1420 this directory, as shown in Table 1-11.
1423 .. table:: Table 1-11: Files in /proc/tty
1434 /proc/tty/drivers::
1436 > cat /proc/tty/drivers
1437 pty_slave /dev/pts 136 0-255 pty:slave
1438 pty_master /dev/ptm 128 0-255 pty:master
1439 pty_slave /dev/ttyp 3 0-255 pty:slave
1440 pty_master /dev/pty 2 0-255 pty:master
1441 serial /dev/cua 5 64-67 serial:callout
1442 serial /dev/ttyS 4 64-67 serial
1447 unknown /dev/tty 4 1-63 console
1450 1.8 Miscellaneous kernel statistics in /proc/stat
1451 -------------------------------------------------
1454 /proc/stat file. All of the numbers reported in this file are aggregates
1457 > cat /proc/stat
1474 - user: normal processes executing in user mode
1475 - nice: niced processes executing in user mode
1476 - system: processes executing in kernel mode
1477 - idle: twiddling thumbs
1478 - iowait: In a word, iowait stands for waiting for I/O to complete. But there
1484 2. In a multi-core CPU, the task waiting for I/O to complete is not running
1486 3. The value of iowait field in /proc/stat will decrease in certain
1489 So, the iowait is not reliable by reading from /proc/stat.
1490 - irq: servicing interrupts
1491 - softirq: servicing softirqs
1492 - steal: involuntary wait
1493 - guest: running a normal guest
1494 - guest_nice: running a niced guest
1524 -------------------------------
1527 /proc/fs/ext4. Each mounted filesystem will have a directory in
1528 /proc/fs/ext4 based on its device name (i.e., /proc/fs/ext4/hdc or
1529 /proc/fs/ext4/dm-0). The files in each per-device directory are shown
1530 in Table 1-12, below.
1532 .. table:: Table 1-12: Files in /proc/fs/ext4/<devname>
1539 1.10 /proc/consoles
1540 -------------------
1544 /dev/console, you may simply look into the file /proc/consoles::
1546 > cat /proc/consoles
1547 tty0 -WU (ECp) 4:7
1548 ttyS0 -W- (Ep) 4:64
1552 +--------------------+-------------------------------------------------------+
1558 +--------------------+-------------------------------------------------------+
1565 +--------------------+-------------------------------------------------------+
1568 +--------------------+-------------------------------------------------------+
1571 -------
1573 The /proc file system serves information about the running system. It not only
1577 The directory structure of /proc reflects the types of information and makes
1584 ---------------
1586 * Modifying kernel parameters by writing into files found in /proc/sys
1588 * Review of the /proc/sys file tree
1590 ------------------------------------------------------------------------------
1592 A very interesting part of /proc is the directory /proc/sys. This is not only
1604 The files in /proc/sys can be used to fine tune and monitor miscellaneous and
1608 very careful when writing to any of these files. The entries in /proc may
1614 Please see: Documentation/admin-guide/sysctl/ directory for descriptions of these
1618 -------
1622 /proc/sys tree can not only be read, but also modified. You can use the echo
1627 Chapter 3: Per-process Parameters
1630 3.1 /proc/<pid>/oom_adj & /proc/<pid>/oom_score_adj- Adjust the oom-killer score
1631 --------------------------------------------------------------------------------
1652 The value of /proc/<pid>/oom_score_adj is added to the badness score before it
1653 is used to determine which task to kill. Acceptable values range from -1000
1656 task or completely disabling it. The lowest possible value, -1000, is
1661 consider for each task. Setting a /proc/<pid>/oom_score_adj value of +500, for
1664 50% more memory. A value of -500, on the other hand, would be roughly
1668 For backwards compatibility with previous kernels, /proc/<pid>/oom_adj may also
1669 be used to tune the badness score. Its acceptable values range from -16
1670 (OOM_ADJUST_MIN) to +15 (OOM_ADJUST_MAX) and a special value of -17
1672 scaled linearly with /proc/<pid>/oom_score_adj.
1674 The value of /proc/<pid>/oom_score_adj may be reduced no lower than the last
1679 3.2 /proc/<pid>/oom_score - Display current oom-killer score
1680 -------------------------------------------------------------
1682 This file can be used to check the current score used by the oom-killer for
1683 any given <pid>. Use it together with /proc/<pid>/oom_score_adj to tune which
1684 process should be killed in an out-of-memory situation.
1690 3.3 /proc/<pid>/io - Display the IO accounting fields
1691 -------------------------------------------------------
1703 test:/tmp # cat /proc/3828/io
1757 accurate for block-backed filesystems. <please add status regarding NFS and
1766 the storage layer. This is done at page-dirtying time.
1785 At its current implementation state, this is a bit racy on 32-bit machines:
1786 if process A reads process B's /proc/pid/io while process B is updating one
1787 of those 64-bit counters, process A could see an intermediate result.
1793 3.4 /proc/<pid>/coredump_filter - Core dump filtering settings
1794 ---------------------------------------------------------------
1798 Conversely, sometimes we want to save file-backed memory segments into a core
1801 /proc/<pid>/coredump_filter allows you to customize which memory segments
1808 - (bit 0) anonymous private memory
1809 - (bit 1) anonymous shared memory
1810 - (bit 2) file-backed private memory
1811 - (bit 3) file-backed shared memory
1812 - (bit 4) ELF header pages in file-backed private memory areas (it is
1814 - (bit 5) hugetlb private memory
1815 - (bit 6) hugetlb shared memory
1816 - (bit 7) DAX private memory
1817 - (bit 8) DAX shared memory
1822 Note that bits 0-4 don't affect hugetlb or DAX memory. hugetlb memory is
1823 only affected by bit 5-6, and DAX is only affected by bits 7-8.
1829 write 0x31 to the process's proc file::
1831 $ echo 0x31 > /proc/1234/coredump_filter
1837 $ echo 0x7 > /proc/self/coredump_filter
1840 3.5 /proc/<pid>/mountinfo - Information about mounts
1841 --------------------------------------------------------
1845 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue
1848 (1) mount ID: unique identifier of the mount (may be reused after umount)
1849 (2) parent ID: ID of parent (or of self for the top of the mount tree)
1880 3.6 /proc/<pid>/comm & /proc/<pid>/task/<tid>/comm
1881 --------------------------------------------------------
1889 3.7 /proc/<pid>/task/<tid>/children - Information about task children
1890 -------------------------------------------------------------------------
1895 Note the "first level" here -- if a child has its own children they will
1896 not be listed here; one needs to read /proc/<children-pid>/task/<tid>/children
1906 3.8 /proc/<pid>/fdinfo/<fd> - Information about opened file
1907 ---------------------------------------------------------------
1909 files have at least four fields -- 'pos', 'flags', 'mnt_id' and 'ino'.
1913 mount ID of the file system containing the opened file [see 3.5
1914 /proc/<pid>/mountinfo for details]. 'ino' represents the inode number of
1940 eventfd-count: 5a
1942 where 'eventfd-count' is hex value of a counter.
1985 …inotify wd:3 ino:9e7e sdev:800013 mask:800afce ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_han…
1994 fields 'fhandle-bytes', 'fhandle-type' and 'f_handle', all in hex
2008 fanotify flags:10 event-flags:0
2010 …fanotify ino:4f969 sdev:800013 mflags:0 mask:3b ignored_mask:40000000 fhandle-bytes:8 fhandle-type…
2012 where fanotify 'flags' and 'event-flags' are values used in fanotify_init
2058 exp_name: system-heap
2063 3.9 /proc/<pid>/map_files - Information about memory mapped files
2064 ---------------------------------------------------------------------
2068 | lr-------- 1 root root 64 Jan 27 11:24 333c600000-333c620000 -> /usr/lib64/ld-2.18.so
2069 | lr-------- 1 root root 64 Jan 27 11:24 333c81f000-333c820000 -> /usr/lib64/ld-2.18.so
2070 | lr-------- 1 root root 64 Jan 27 11:24 333c820000-333c821000 -> /usr/lib64/ld-2.18.so
2072 | lr-------- 1 root root 64 Jan 27 11:24 35d0421000-35d0422000 -> /usr/lib64/libselinux.so.1
2073 | lr-------- 1 root root 64 Jan 27 11:24 400000-41a000 -> /usr/bin/ls
2076 vm_area_struct::vm_start-vm_area_struct::vm_end.
2079 files in a fast way instead of parsing /proc/<pid>/maps or
2080 /proc/<pid>/smaps, both of which contain many more records. At the same
2085 3.10 /proc/<pid>/timerslack_ns - Task timerslack value
2086 ---------------------------------------------------------
2096 Valid values are from 0 - ULLONG_MAX
2101 3.11 /proc/<pid>/patch_state - Livepatch patch operation state
2102 -----------------------------------------------------------------
2106 A value of '-1' indicates that no patch is in transition.
2118 3.12 /proc/<pid>/arch_status - task architecture specific status
2119 -------------------------------------------------------------------
2128 $ cat /proc/6753/arch_status
2159 A special value of '-1' indicates that no AVX512 usage was recorded, thus
2167 ---------------------
2172 hidepid= Set /proc/<pid>/ access mode.
2177 hidepid=off or hidepid=0 means classic mode - everybody may access all
2178 /proc/<pid>/ directories (default).
2180 hidepid=noaccess or hidepid=1 means users may not access any /proc/<pid>/
2184 behaviour). As an additional bonus, as /proc/<pid>/cmdline is unaccessible for
2188 hidepid=invisible or hidepid=2 means hidepid=1 plus all /proc/<pid>/ will be
2191 by "kill -0 $PID"), but it hides process' uid and gid, which may be learned by
2192 stat()'ing /proc/<pid>/ otherwise. It greatly complicates an intruder's task of
2198 /proc/<pid>/ directories that the caller can ptrace.
2217 # grep ^proc /proc/mounts
2218 proc /proc proc rw,relatime,hidepid=2 0 0
2220 # strace -e mount mount -o hidepid=1 -t proc proc /tmp/proc
2221 mount("proc", "/tmp/proc", "proc", 0, "hidepid=1") = 0
2224 # grep ^proc /proc/mounts
2225 proc /proc proc rw,relatime,hidepid=2 0 0
2226 proc /tmp/proc proc rw,relatime,hidepid=2 0 0
2231 # mount -o remount,hidepid=1 -t proc proc /tmp/proc
2233 # grep ^proc /proc/mounts
2234 proc /proc proc rw,relatime,hidepid=1 0 0
2235 proc /tmp/proc proc rw,relatime,hidepid=1 0 0
2244 # mount -o hidepid=invisible -t proc proc /proc
2245 # mount -o hidepid=noaccess -t proc proc /tmp/proc
2246 # grep ^proc /proc/mounts
2247 proc /proc proc rw,relatime,hidepid=invisible 0 0
2248 proc /tmp/proc proc rw,relatime,hidepid=noaccess 0 0