[][src]Struct procfs::Status

pub struct Status {
    pub name: String,
    pub umask: Option<u32>,
    pub state: String,
    pub tgid: i32,
    pub ngid: Option<i32>,
    pub pid: i32,
    pub ppid: i32,
    pub tracerpid: i32,
    pub ruid: i32,
    pub euid: i32,
    pub suid: i32,
    pub fuid: i32,
    pub rgid: i32,
    pub egid: i32,
    pub sgid: i32,
    pub fgid: i32,
    pub fdsize: u32,
    pub groups: Vec<i32>,
    pub nstgid: Option<Vec<i32>>,
    pub nspid: Option<Vec<i32>>,
    pub nspgid: Option<Vec<i32>>,
    pub nssid: Option<Vec<i32>>,
    pub vmpeak: Option<u64>,
    pub vmsize: Option<u64>,
    pub vmlck: Option<u64>,
    pub vmpin: Option<u64>,
    pub vmhwm: Option<u64>,
    pub vmrss: Option<u64>,
    pub rssanon: Option<u64>,
    pub rssfile: Option<u64>,
    pub rssshmem: Option<u64>,
    pub vmdata: Option<u64>,
    pub vmstk: Option<u64>,
    pub vmexe: Option<u64>,
    pub vmlib: Option<u64>,
    pub vmpte: Option<u64>,
    pub vmswap: Option<u64>,
    pub hugetblpages: Option<u64>,
    pub threads: u64,
    pub sigq: (u64, u64),
    pub sigpnd: u64,
    pub shdpnd: u64,
    pub sigblk: u64,
    pub sigign: u64,
    pub sigcgt: u64,
    pub capinh: u64,
    pub capprm: u64,
    pub capeff: u64,
    pub capbnd: Option<u64>,
    pub capamb: Option<u64>,
    pub nonewprivs: Option<u64>,
    pub seccomp: Option<u32>,
    pub speculation_store_bypass: Option<String>,
    pub cpus_allowed: Option<Vec<u32>>,
    pub cpus_allowed_list: Option<Vec<(u32, u32)>>,
    pub mems_allowed: Option<Vec<u32>>,
    pub mems_allowed_list: Option<Vec<(u32, u32)>>,
    pub voluntary_ctxt_switches: Option<u64>,
    pub nonvoluntary_ctxt_switches: Option<u64>,
}

Status information about the process, based on the /proc/<pid>/status file.

To construct this structure, see Process::status().

Not all fields are available in every kernel. These fields have Option<T> types. In general, the current kernel version will tell you what fields you can expect, but this isn't totally reliable, since some kernels might backport certain fields, or fields might only be present if certain kernel configuration options are enabled. Be prepared to handle None values.

Fields

name: String

Command run by this process.

umask: Option<u32>

Process umask, expressed in octal with a leading zero; see umask(2). (Since Linux 4.7.)

state: String

Current state of the process.

tgid: i32

Thread group ID (i.e., Process ID).

ngid: Option<i32>

NUMA group ID (0 if none; since Linux 3.13).

pid: i32

Thread ID (see gettid(2)).

ppid: i32

PID of parent process.

tracerpid: i32

PID of process tracing this process (0 if not being traced).

ruid: i32

Real UID.

euid: i32

Effective UID.

suid: i32

Saved set UID.

fuid: i32

Filesystem UID.

rgid: i32

Real GID.

egid: i32

Effective GID.

sgid: i32

Saved set GID.

fgid: i32

Filesystem GID.

fdsize: u32

Number of file descriptor slots currently allocated.

groups: Vec<i32>

Supplementary group list.

nstgid: Option<Vec<i32>>

Thread group ID (i.e., PID) in each of the PID namespaces of which [pid] is a member. The leftmost entry shows the value with respect to the PID namespace of the reading process, followed by the value in successively nested inner namespaces. (Since Linux 4.1.)

nspid: Option<Vec<i32>>

Thread ID in each of the PID namespaces of which [pid] is a member. The fields are ordered as for NStgid. (Since Linux 4.1.)

nspgid: Option<Vec<i32>>

Process group ID in each of the PID namespaces of which [pid] is a member. The fields are ordered as for NStgid. (Since Linux 4.1.)

nssid: Option<Vec<i32>>

NSsid: descendant namespace session ID hierarchy Session ID in each of the PID namespaces of which [pid] is a member. The fields are ordered as for NStgid. (Since Linux 4.1.)

vmpeak: Option<u64>

Peak virtual memory size by kB.

vmsize: Option<u64>

Virtual memory size by kB.

vmlck: Option<u64>

Locked memory size by kB (see mlock(3)).

vmpin: Option<u64>

Pinned memory size by kB (since Linux 3.2). These are pages that can't be moved because something needs to directly access physical memory.

vmhwm: Option<u64>

Peak resident set size by kB ("high water mark").

vmrss: Option<u64>

Resident set size by kB. Note that the value here is the sum of RssAnon, RssFile, and RssShmem.

rssanon: Option<u64>

Size of resident anonymous memory by kB. (since Linux 4.5).

rssfile: Option<u64>

Size of resident file mappings by kB. (since Linux 4.5).

rssshmem: Option<u64>

Size of resident shared memory by kB (includes System V shared memory, mappings from tmpfs(5), and shared anonymous mappings). (since Linux 4.5).

vmdata: Option<u64>

Size of data by kB.

vmstk: Option<u64>

Size of stack by kB.

vmexe: Option<u64>

Size of text seg‐ments by kB.

vmlib: Option<u64>

Shared library code size by kB.

vmpte: Option<u64>

Page table entries size by kB (since Linux 2.6.10).

vmswap: Option<u64>

Swapped-out virtual memory size by anonymous private pages by kB; shmem swap usage is not included (since Linux 2.6.34).

hugetblpages: Option<u64>

Size of hugetlb memory portions by kB. (since Linux 4.4).

threads: u64

Number of threads in process containing this thread.

sigq: (u64, u64)

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 RLIMIT_SIGPENDING in getrlimit(2)).

sigpnd: u64

Number of signals pending for thread (see pthreads(7) and signal(7)).

shdpnd: u64

Number of signals pending for process as a whole (see pthreads(7) and signal(7)).

sigblk: u64

Masks indicating signals being blocked (see signal(7)).

sigign: u64

Masks indicating signals being ignored (see signal(7)).

sigcgt: u64

Masks indicating signals being caught (see signal(7)).

capinh: u64

Masks of capabilities enabled in inheritable sets (see capabilities(7)).

capprm: u64

Masks of capabilities enabled in permitted sets (see capabilities(7)).

capeff: u64

Masks of capabilities enabled in effective sets (see capabilities(7)).

capbnd: Option<u64>

Capability Bounding set (since Linux 2.6.26, see capabilities(7)).

capamb: Option<u64>

Ambient capability set (since Linux 4.3, see capabilities(7)).

nonewprivs: Option<u64>

Value of the no_new_privs bit (since Linux 4.10, see prctl(2)).

seccomp: Option<u32>

Seccomp mode of the process (since Linux 3.8, see seccomp(2)). 0 means SECCOMP_MODE_DISABLED; 1 means SEC‐ COMP_MODE_STRICT; 2 means SECCOMP_MODE_FILTER. This field is provided only if the kernel was built with the CON‐ FIG_SECCOMP kernel configuration option enabled.

speculation_store_bypass: Option<String>

Speculative store bypass mitigation status.

cpus_allowed: Option<Vec<u32>>

Mask of CPUs on which this process may run (since Linux 2.6.24, see cpuset(7)).

cpus_allowed_list: Option<Vec<(u32, u32)>>

Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)).

mems_allowed: Option<Vec<u32>>

Mask of memory nodes allowed to this process (since Linux 2.6.24, see cpuset(7)).

mems_allowed_list: Option<Vec<(u32, u32)>>

Same as previous, but in "list format" (since Linux 2.6.26, see cpuset(7)).

voluntary_ctxt_switches: Option<u64>

Number of voluntary context switches (since Linux 2.6.23).

nonvoluntary_ctxt_switches: Option<u64>

Number of involuntary context switches (since Linux 2.6.23).

Methods

impl Status[src]

pub fn from_reader<R: Read>(r: R) -> Option<Status>[src]

Trait Implementations

impl Clone for Status[src]

impl Debug for Status[src]

Auto Trait Implementations

impl Send for Status

impl Unpin for Status

impl Sync for Status

impl UnwindSafe for Status

impl RefUnwindSafe for Status

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]