pub struct PopenConfig {
pub stdin: Redirection,
pub stdout: Redirection,
pub stderr: Redirection,
pub detached: bool,
pub executable: Option<OsString>,
pub env: Option<Vec<(OsString, OsString)>>,
pub cwd: Option<OsString>,
pub setuid: Option<u32>,
pub setgid: Option<u32>,
pub setpgid: bool,
/* private fields */
}Expand description
Options for Popen::create.
When constructing PopenConfig, always use the Default trait, such as:
Popen::create(argv, PopenConfig {
stdout: Redirection::Pipe,
detached: true,
// ... other fields you want to override ...
..Default::default()
})This ensures that fields added later do not break existing code.
An alternative to using PopenConfig directly is creating processes using Exec, a
builder for Popen.
Fields§
§stdin: RedirectionHow to configure the executed program’s standard input.
stdout: RedirectionHow to configure the executed program’s standard output.
stderr: RedirectionHow to configure the executed program’s standard error.
detached: boolWhether the Popen instance is initially detached.
executable: Option<OsString>Executable to run.
If provided, this executable will be used to run the program instead of argv[0].
However, argv[0] will still be passed to the subprocess, which will see that as
argv[0]. On some Unix systems, ps will show the string passed as argv[0], even
though executable is actually running.
env: Option<Vec<(OsString, OsString)>>Environment variables to pass to the subprocess.
If this is None, environment variables are inherited from the calling process. Otherwise, the specified variables are used instead.
Duplicates are eliminated, with the value taken from the variable appearing later in the vector.
cwd: Option<OsString>Initial current working directory of the subprocess.
None means inherit the working directory from the parent.
setuid: Option<u32>Set user ID for the subprocess.
If specified, calls setuid() before execing the child process.
setgid: Option<u32>Set group ID for the subprocess.
If specified, calls setgid() before execing the child process.
Not to be confused with similarly named setpgid.
setpgid: boolMake the subprocess belong to a new process group.
If specified, calls setpgid(0, 0) before execing the child process.
Not to be confused with similarly named setgid.
Implementations§
Source§impl PopenConfig
impl PopenConfig
Sourcepub fn try_clone(&self) -> Result<PopenConfig>
pub fn try_clone(&self) -> Result<PopenConfig>
Clone the underlying PopenConfig, or return an error.
This is guaranteed not to fail as long as no Redirection::File variant is used for
one of the standard streams. Otherwise, it fails if File::try_clone fails on one of
the Redirections.
Sourcepub fn current_env() -> Vec<(OsString, OsString)>
pub fn current_env() -> Vec<(OsString, OsString)>
Returns the environment of the current process.
The returned value is in the format accepted by the env
member of PopenConfig.