Skip to main content

Process

Struct Process 

Source
pub struct Process { /* private fields */ }
Expand description

A handle to a spawned process.

§Fork Safety

The process handle contains a PID. After a fork, the child process will have a copy of this PID, but it refers to the same original process. Calling wait or kill from the child may lead to confusing results if multiple processes are managing the same PID.

Implementations§

Source§

impl Process

Source

pub fn new(pid: pid_t) -> Self

Create a handle for an existing PID.

Source

pub fn pid(&self) -> pid_t

Return the process ID.

Source

pub fn wait_step(&self) -> Result<Option<ExitStatus>, CoreError>

Perform a non-blocking wait for process termination.

§Errors
  • ECHILD: The process does not exist or is not a child of the caller.
  • EINTR: The call was interrupted by a signal (handled internally).
Source

pub fn wait_blocking(&self) -> Result<ExitStatus, CoreError>

Block until the process terminates.

§Errors
  • ECHILD: The process does not exist or is not a child of the caller.
Source

pub fn kill(&self, sig: i32) -> Result<(), CoreError>

Send a signal to the process.

§Errors
  • EINVAL: Invalid signal number.
  • EPERM: The caller does not have permission to send the signal.
  • ESRCH: The process does not exist.
Source

pub fn kill_pgroup(&self, sig: i32) -> Result<(), CoreError>

Send a signal to the process group.

§Errors

Same as Self::kill.

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> 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, 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.