umask? Command такое не может. В идеале что-то, что может асинхронно спавнить процессы
use std::os::unix::process::CommandExt; use std::process::Command; use nix::sys::stat::{umask, Mode}; fn main() { let mut cmd = Command::new("/bin/bash"); cmd.args(&["-c", "umask"]); unsafe { cmd.pre_exec(|| { umask(Mode::empty()); Ok(()) }); } println!("{:?}", cmd.output()); }
Асинхронно — это тебе к tokio: https://docs.rs/tokio/0.2.0-alpha.6/tokio/net/process/struct.Command.html#method.pre_exec
В async-std есть обсуждение проблематики реализации асинхронного запуска процессов в tokio-process и QProcess (Qt), если интересно: https://github.com/async-rs/async-std/issues/22#issuecomment-550954785
Обсуждают сегодня