rlimit

Struct ProcLimits

Source
#[non_exhaustive]
pub struct ProcLimits {
Show 16 fields pub max_cpu_time: Option<ProcLimit>, pub max_file_size: Option<ProcLimit>, pub max_data_size: Option<ProcLimit>, pub max_stack_size: Option<ProcLimit>, pub max_core_file_size: Option<ProcLimit>, pub max_resident_set: Option<ProcLimit>, pub max_processes: Option<ProcLimit>, pub max_open_files: Option<ProcLimit>, pub max_locked_memory: Option<ProcLimit>, pub max_address_space: Option<ProcLimit>, pub max_file_locks: Option<ProcLimit>, pub max_pending_signals: Option<ProcLimit>, pub max_msgqueue_size: Option<ProcLimit>, pub max_nice_priority: Option<ProcLimit>, pub max_realtime_priority: Option<ProcLimit>, pub max_realtime_timeout: Option<ProcLimit>,
}
Expand description

A process’s resource limits. It is parsed from the proc filesystem.

See https://man7.org/linux/man-pages/man5/proc.5.html.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§max_cpu_time: Option<ProcLimit>

Max cpu time. See also Resource::CPU.

§max_file_size: Option<ProcLimit>

Max file size. See also Resource::FSIZE.

§max_data_size: Option<ProcLimit>

Max data size. See also Resource::DATA.

§max_stack_size: Option<ProcLimit>

Max stack size. See also Resource::STACK.

§max_core_file_size: Option<ProcLimit>

Max core file size. See also Resource::CORE.

§max_resident_set: Option<ProcLimit>

Max resident set. See also Resource::RSS.

§max_processes: Option<ProcLimit>

Max processes. See also Resource::NPROC.

§max_open_files: Option<ProcLimit>

Max open files. See also Resource::NOFILE.

§max_locked_memory: Option<ProcLimit>

Max locked memory. See also Resource::MEMLOCK.

§max_address_space: Option<ProcLimit>

Max address space. See also Resource::AS.

§max_file_locks: Option<ProcLimit>

Max file locks. See also Resource::LOCKS.

§max_pending_signals: Option<ProcLimit>

Max pending signals. See also Resource::SIGPENDING.

§max_msgqueue_size: Option<ProcLimit>

Max msgqueue size. See also Resource::MSGQUEUE.

§max_nice_priority: Option<ProcLimit>

Max nice priority. See also Resource::NICE.

§max_realtime_priority: Option<ProcLimit>

Max realtime priority. See also Resource::RTPRIO.

§max_realtime_timeout: Option<ProcLimit>

Max realtime timeout. See also Resource::RTTIME.

Implementations§

Source§

impl ProcLimits

Source

pub fn read_self() -> Result<Self>

Reads the current process’s resource limits from /proc/self/limits.

§Errors

Returns an error if any IO operation failed.

Returns an error if the file format is invalid.

Source

pub fn read_process(pid: pid_t) -> Result<Self>

Reads a process’s resource limits from /proc/[pid]/limits.

§Errors

Returns an error if pid is negative.

Returns an error if any IO operation failed.

Returns an error if the file format is invalid.

Trait Implementations§

Source§

impl Clone for ProcLimits

Source§

fn clone(&self) -> ProcLimits

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProcLimits

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ProcLimits

Source§

fn default() -> ProcLimits

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.