этого использую конструкцию:
thread::spawn(||{
Command::new("ipfs")
.arg("daemon")
.spawn()
.expect("it went wrong")
});
однако, хочется спавнить тред тогда, когда демон реально запустился, а не завершился ошибкой (занят порт, например)
как вариант, можно чёркать порт перед спавном, но это не универсальное решение (могут быть и другие ошибки). Как можно перехватить вывод демона, проверить его и тогда только тред оставлять?
или проще запускать тред, искать отдачу и убивать тред если внутри него ошибка? (кажется не очень логичным вариантом)
https://doc.rust-lang.org/std/process/struct.Command.html#method.output
Обсуждают сегодня