diff options
| author | Niklas Fiekas <niklas.fiekas@backscattering.de> | 2022-06-16 00:12:03 +0200 |
|---|---|---|
| committer | Niklas Fiekas <niklas.fiekas@backscattering.de> | 2022-07-09 12:40:33 +0200 |
| commit | b028bbf9d0618f0f4af279d33b7a057a8072eb18 (patch) | |
| tree | f1b7280275b8ef7b72599e2afd7c390d6d1863a9 | |
| parent | 86b8dd5389cd9d545418a60902222a4ba859365f (diff) | |
| download | rust-b028bbf9d0618f0f4af279d33b7a057a8072eb18.tar.gz rust-b028bbf9d0618f0f4af279d33b7a057a8072eb18.zip | |
Document and stabilize process_set_process_group
Tracking issue: https://github.com/rust-lang/rust/issues/93857 FCP finished here: https://github.com/rust-lang/rust/issues/93857#issuecomment-1179551697
| -rw-r--r-- | library/std/src/os/unix/process.rs | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/library/std/src/os/unix/process.rs b/library/std/src/os/unix/process.rs index 5065530e8d4..bd6d431f8e4 100644 --- a/library/std/src/os/unix/process.rs +++ b/library/std/src/os/unix/process.rs @@ -148,9 +148,34 @@ pub trait CommandExt: Sealed { where S: AsRef<OsStr>; - /// Sets the process group ID of the child process. Translates to a `setpgid` call in the child - /// process. - #[unstable(feature = "process_set_process_group", issue = "93857")] + /// Sets the process group ID of the child process. Equivalent to a + /// `setpgid` call in the child process, but may be more efficient. + /// + /// Process groups determine which processes receive signals. + /// + /// # Examples + /// + /// Pressing Ctrl-C in a terminal will send SIGINT to all processes in + /// the current foreground process group. By spawning the `sleep` + /// subprocess in a new process group, it will not receive SIGINT from the + /// terminal. + /// + /// The parent process could install a signal handler and manage the + /// subprocess on its own terms. + /// + /// ```no_run + /// use std::process::Command; + /// use std::os::unix::process::CommandExt; + /// + /// Command::new("sleep") + /// .arg("10") + /// .process_group(0) + /// .spawn()? + /// .wait()?; + /// # + /// # Ok::<_, Box<dyn std::error::Error>>(()) + /// ``` + #[stable(feature = "process_set_process_group", since = "1.64.0")] fn process_group(&mut self, pgroup: i32) -> &mut process::Command; } |
