Есть ли способ выполнить функцию Rust в независимом процессе? - PullRequest
0 голосов
/ 23 октября 2019

У меня есть программа, которая принимает аргумент с именем start-master. Когда он пройден, мне нужно запустить демон, прослушивающий порт.

У меня есть функция:

fn startMaster() {
    // Sockets, connections, logic, etc
}

Могу ли я создать новый процесс, который выполняет startMaster в фоновом режимечтобы пользователь мог звонить ./mainprogram start-master без использования bash's &?

Процесс должен быть независимым от основного процесса, так как он не должен останавливаться после завершения процесса вызывающего. Мне нужно неблокирующее решение.

Моя основная программа будет:

fn main() {
    let args: Vec<String> = env::args().collect();
    let arg1 = &args[1];
    // ...
    match arg1.as_ref() {
        "start-master" => {
            // Starts process in background which executes startMaster function
        }
        _ => println!("Not valid argument")
    }

    // Ends program but now there is an active daemon 
}
...