Метод spawn
Метод spawn класса Command запускает
внешнюю команду как отдельный дочерний процесс
и сразу возвращает управление, не дожидаясь его
завершения. Метод возвращает значение типа
Result<Child, Error>: при успешном запуске
возвращается объект Child, через который
можно ожидать завершения процесса, получить его
идентификатор или завершить его принудительно.
Параметров метод не принимает.
Синтаксис
command.spawn()
Пример
Давайте запустим команду echo с аргументом
"abcde" и дождёмся её завершения с помощью
метода wait:
use std::process::Command;
fn main()
{
let mut child = Command::new("echo")
.arg("abcde")
.spawn()
.expect("failed to spawn command");
let status = child.wait()
.expect("failed to wait for command");
println!("{}", status.success());
}
Результат выполнения кода:
true
Пример
Давайте запустим команду echo с аргументом
"12345" и получим её идентификатор процесса
через метод id:
use std::process::Command;
fn main()
{
let child = Command::new("echo")
.arg("12345")
.spawn()
.expect("failed to spawn command");
println!("pid: {}", child.id());
}
Пример вывода (идентификатор процесса может отличаться):
pid: 12345