Struct procfs::process::Process [−][src]
Represents a process in /proc/<pid>
.
The stat
structure is pre-populated because it’s useful info, but other data is loaded on
demand (and so might fail, if the process no longer exist).
Fields
pid: i32
The process ID
(same as the Stat.pid
field).
stat: Stat
Process status, based on the /proc/<pid>/stat
file.
owner: u32
The user id of the owner of this process
Implementations
impl Process
[src]
pub fn limits(&self) -> ProcResult<Limits>
[src]
Return the limits for this process
impl Process
[src]
pub fn mountstats(&self) -> ProcResult<Vec<MountStat>>
[src]
Returns the MountStat data for this processes mount namespace.
pub fn mountinfo(&self) -> ProcResult<Vec<MountInfo>>
[src]
Returns info about the mountpoints in this this process’s mount namespace
This data is taken from the /proc/[pid]/mountinfo
file
(Since Linux 2.6.26)
impl Process
[src]
pub fn new(pid: pid_t) -> ProcResult<Process>
[src]
Returns a Process
based on a specified PID.
This can fail if the process doesn’t exist, or if you don’t have permission to access it.
pub fn new_with_root(root: PathBuf) -> ProcResult<Process>
[src]
Returns a Process
based on a specified /proc/<pid>
path.
pub fn myself() -> ProcResult<Process>
[src]
Returns a Process
for the currently running process.
This is done by using the /proc/self
symlink
pub fn cmdline(&self) -> ProcResult<Vec<String>>
[src]
Returns the complete command line for the process, unless the process is a zombie.
pub fn pid(&self) -> pid_t
[src]
Returns the process ID for this process.
pub fn is_alive(&self) -> bool
[src]
Is this process still alive?
pub fn cwd(&self) -> ProcResult<PathBuf>
[src]
Retrieves current working directory of the process by dereferencing /proc/<pid>/cwd
symbolic link.
This method has the following caveats:
-
if the pathname has been unlinked, the symbolic link will contain the string “ (deleted)“ appended to the original pathname
-
in a multithreaded process, the contents of this symbolic link are not available if the main thread has already terminated (typically by calling
pthread_exit(3)
) -
permission to dereference or read this symbolic link is governed by a
ptrace(2)
access modePTRACE_MODE_READ_FSCREDS
check
pub fn root(&self) -> ProcResult<PathBuf>
[src]
Retrieves current root directory of the process by dereferencing /proc/<pid>/root
symbolic link.
This method has the following caveats:
-
if the pathname has been unlinked, the symbolic link will contain the string “ (deleted)“ appended to the original pathname
-
in a multithreaded process, the contents of this symbolic link are not available if the main thread has already terminated (typically by calling
pthread_exit(3)
) -
permission to dereference or read this symbolic link is governed by a
ptrace(2)
access modePTRACE_MODE_READ_FSCREDS
check
pub fn environ(&self) -> ProcResult<HashMap<OsString, OsString>>
[src]
Gets the current environment for the process. This is done by reading the
/proc/pid/environ
file.
pub fn exe(&self) -> ProcResult<PathBuf>
[src]
Retrieves the actual path of the executed command by dereferencing /proc/<pid>/exe
symbolic link.
This method has the following caveats:
-
if the pathname has been unlinked, the symbolic link will contain the string “ (deleted)“ appended to the original pathname
-
in a multithreaded process, the contents of this symbolic link are not available if the main thread has already terminated (typically by calling
pthread_exit(3)
) -
permission to dereference or read this symbolic link is governed by a
ptrace(2)
access modePTRACE_MODE_READ_FSCREDS
check
pub fn io(&self) -> ProcResult<Io>
[src]
Return the Io stats for this process, based on the /proc/pid/io
file.
(since kernel 2.6.20)
pub fn maps(&self) -> ProcResult<Vec<MemoryMap>>
[src]
Return a list of the currently mapped memory regions and their access permissions, based on
the /proc/pid/maps
file.
pub fn fd(&self) -> ProcResult<Vec<FDInfo>>
[src]
Gets a list of open file descriptors for a process
pub fn coredump_filter(&self) -> ProcResult<Option<CoredumpFlags>>
[src]
Lists which memory segments are written to the core dump in the event that a core dump is performed.
By default, the following bits are set: 0, 1, 4 (if the CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS kernel configuration option is enabled), and 5. This default can be modified at boot time using the core dump_filter boot option.
This function will return Err(ProcError::NotFound)
if the coredump_filter
file can’t be
found. If it returns Ok(None)
then the process has no coredump_filter
pub fn autogroup(&self) -> ProcResult<String>
[src]
Gets the process’s autogroup membership
(since Linux 2.6.38 and requires CONFIG_SCHED_AUTOGROUP)
pub fn auxv(&self) -> ProcResult<HashMap<u32, u32>>
[src]
Get the process’s auxiliary vector
(since 2.6.0-test7)
pub fn wchan(&self) -> ProcResult<String>
[src]
Gets the symbolic name corresponding to the location in the kernel where the process is sleeping.
(since Linux 2.6.0)
pub fn status(&self) -> ProcResult<Status>
[src]
Return the Status
for this process, based on the /proc/[pid]/status
file.
pub fn stat(&self) -> ProcResult<Stat>
[src]
Returns the status info from /proc/[pid]/stat
.
Note that this data comes pre-loaded in the stat
field. This method is useful when you
get the latest status data (since some of it changes while the program is running)
pub fn loginuid(&self) -> ProcResult<u32>
[src]
Gets the process’ login uid. May not be available.
pub fn oom_score(&self) -> ProcResult<u32>
[src]
The current score that the kernel gives to this process for the purpose of selecting a process for the OOM-killer
A higher score means that the process is more likely to be selected by the OOM-killer. The basis for this score is the amount of memory used by the process, plus other factors.
(Since linux 2.6.11)
pub fn statm(&self) -> ProcResult<StatM>
[src]
Set process memory information
Much of this data is the same as the data from stat()
and status()
impl Process
[src]
pub fn cgroups(&self) -> ProcResult<Vec<ProcessCgroup>>
[src]
Describes control groups to which the process with the corresponding PID belongs.
The displayed information differs for cgroupsversion 1 and version 2 hierarchies.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Process
impl Send for Process
impl Sync for Process
impl Unpin for Process
impl UnwindSafe for Process
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,