pub struct PidFd { /* private fields */ }linux_pidfd #82971)Expand description
This type represents a file descriptor that refers to a process.
A PidFd can be obtained by setting the corresponding option on Command
with create_pidfd. Subsequently, the created pidfd can be retrieved
from the Child by calling pidfd or into_pidfd.
Example:
#![feature(linux_pidfd)]
use std::os::linux::process::{CommandExt, ChildExt};
use std::process::Command;
let mut child = Command::new("echo")
.create_pidfd(true)
.spawn()
.expect("Failed to spawn child");
let pidfd = child
.into_pidfd()
.expect("Failed to retrieve pidfd");
// The file descriptor will be closed when `pidfd` is dropped.Refer to the man page of pidfd_open(2) for further details.
Implementations§
Source§impl PidFd
impl PidFd
Sourcepub fn kill(&self) -> Result<()>
🔬This is a nightly-only experimental API. (linux_pidfd #82971)
pub fn kill(&self) -> Result<()>
linux_pidfd #82971)Forces the child process to exit.
Unlike Child::kill it is possible to attempt to kill
reaped children since PidFd does not suffer from pid recycling
races. But doing so will return an Error.
Sourcepub fn wait(&self) -> Result<ExitStatus>
🔬This is a nightly-only experimental API. (linux_pidfd #82971)
pub fn wait(&self) -> Result<ExitStatus>
linux_pidfd #82971)Waits for the child to exit completely, returning the status that it exited with.
Unlike Child::wait it does not ensure that the stdin handle is closed.
Additionally on kernels prior to 6.15 only the first attempt to reap a child will return an ExitStatus, further attempts will return an Error.
Sourcepub fn try_wait(&self) -> Result<Option<ExitStatus>>
🔬This is a nightly-only experimental API. (linux_pidfd #82971)
pub fn try_wait(&self) -> Result<Option<ExitStatus>>
linux_pidfd #82971)Attempts to collect the exit status of the child if it has already exited.
On kernels prior to 6.15, and unlike Child::try_wait, only the first attempt
to reap a child will return an ExitStatus, further attempts will return an Error.
Trait Implementations§
Source§impl AsFd for PidFd
impl AsFd for PidFd
Source§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
target_os=trusty or WASI or target_os=motor only.