Struct async_process::Command [−][src]
pub struct Command { /* fields omitted */ }Expand description
A builder for spawning processes.
Examples
use async_process::Command;
let output = if cfg!(target_os = "windows") {
Command::new("cmd").args(&["/C", "echo hello"]).output().await?
} else {
Command::new("sh").arg("-c").arg("echo hello").output().await?
};Implementations
Adds a single argument to pass to the program.
Examples
use async_process::Command;
let mut cmd = Command::new("echo");
cmd.arg("hello");
cmd.arg("world");Adds multiple arguments to pass to the program.
Examples
use async_process::Command;
let mut cmd = Command::new("echo");
cmd.args(&["hello", "world"]);Configures an environment variable for the new process.
Note that environment variable names are case-insensitive (but case-preserving) on Windows, and case-sensitive on all other platforms.
Examples
use async_process::Command;
let mut cmd = Command::new("ls");
cmd.env("PATH", "/bin");Configures multiple environment variables for the new process.
Note that environment variable names are case-insensitive (but case-preserving) on Windows, and case-sensitive on all other platforms.
Examples
use async_process::Command;
let mut cmd = Command::new("ls");
cmd.envs(vec![("PATH", "/bin"), ("TERM", "xterm-256color")]);Removes an environment variable mapping.
Examples
use async_process::Command;
let mut cmd = Command::new("ls");
cmd.env_remove("PATH");Removes all environment variable mappings.
Examples
use async_process::Command;
let mut cmd = Command::new("ls");
cmd.env_clear();Configures the working directory for the new process.
Examples
use async_process::Command;
let mut cmd = Command::new("ls");
cmd.current_dir("/");Configures the standard input (stdin) for the new process.
Examples
use async_process::{Command, Stdio};
let mut cmd = Command::new("cat");
cmd.stdin(Stdio::null());Configures the standard output (stdout) for the new process.
Examples
use async_process::{Command, Stdio};
let mut cmd = Command::new("ls");
cmd.stdout(Stdio::piped());Configures the standard error (stderr) for the new process.
Examples
use async_process::{Command, Stdio};
let mut cmd = Command::new("ls");
cmd.stderr(Stdio::piped());Configures whether to reap the zombie process when Child is dropped.
When the process finishes, it becomes a “zombie” and some resources associated with it
remain until Child::try_status(), Child::status(), or Child::output() collects
its exit code.
If its exit code is never collected, the resources may leak forever. This crate has a background thread named “async-process” that collects such “zombie” processes and then “reaps” them, thus preventing the resource leaks.
The default value of this option is true.
Examples
use async_process::{Command, Stdio};
let mut cmd = Command::new("cat");
cmd.reap_on_drop(false);Executes the command and returns the Child handle to it.
If not configured, stdin, stdout and stderr will be set to Stdio::inherit().
After spawning the process, stdin, stdout, and stderr become unconfigured again.
Examples
use async_process::Command;
let child = Command::new("ls").spawn()?;Executes the command, waits for it to exit, and returns the exit status.
If not configured, stdin, stdout and stderr will be set to Stdio::inherit().
After spawning the process, stdin, stdout, and stderr become unconfigured again.
Examples
use async_process::Command;
let status = Command::new("cp")
.arg("a.txt")
.arg("b.txt")
.status()
.await?;Executes the command and collects its output.
If not configured, stdin will be set to Stdio::null(), and stdout and stderr will be
set to Stdio::piped().
After spawning the process, stdin, stdout, and stderr become unconfigured again.
Examples
use async_process::Command;
let output = Command::new("cat")
.arg("a.txt")
.output()
.await?;Trait Implementations
Sets the process creation flags to be passed to CreateProcess. Read more