#child-process #process #tokio #ctrl-c #terminate

tokio-process-terminate

A tokio process extension to terminate child processes

5 unstable releases

0.3.2 Jan 2, 2024
0.3.1 Jan 2, 2024
0.3.0 Nov 15, 2023
0.2.0 Nov 8, 2023
0.1.0 Nov 8, 2023

#5 in #terminate

Download history 28/week @ 2024-11-15 21/week @ 2024-11-22 16/week @ 2024-11-29 59/week @ 2024-12-06 25/week @ 2024-12-13 7/week @ 2024-12-20 26/week @ 2024-12-27 31/week @ 2025-01-03 17/week @ 2025-01-10 12/week @ 2025-01-17 21/week @ 2025-01-24 19/week @ 2025-01-31 35/week @ 2025-02-07 10/week @ 2025-02-14 24/week @ 2025-02-21 66/week @ 2025-02-28

139 downloads per month
Used in worterbuch-cluster-orches…

MIT/Apache

10KB
165 lines

tokio-process-terminate

Extensions to tokio::process::Child to terminate processes.

use tokio::process::Command;
use tokio_process_terminate::TerminateExt;

#[tokio::main]
async fn main() {
    let mut command = Command::new("sleep")
        .arg("10")
        .spawn()
        .unwrap();
    tokio::time::sleep(std::time::Duration::from_secs(1)).await;
    let exit = command.terminate_wait().await.unwrap();
    dbg!(exit);
    let code = exit.code();
    // On Unix, code should be `None` if the process was terminated by a signal.
    assert!(code.is_none());
}

lib.rs:

Extensions to tokio::process::Child to terminate processes.

use tokio::process::Command;
use tokio_process_terminate::TerminateExt;

#[tokio::main]
async fn main() {
    let mut command = Command::new("sleep")
        .arg("10")
        .spawn()
        .unwrap();
    tokio::time::sleep(std::time::Duration::from_secs(1)).await;
    let exit = command.terminate_wait().await.unwrap();
    dbg!(exit);
    let code = exit.code();
    // On Unix, code should be `None` if the process was terminated by a signal.
    assert!(code.is_none());
}

Dependencies

~3–13MB
~137K SLoC