systemd-run 0.9.0

A Rust crate for running processes as Systemd transient services.
Documentation
use systemd_run::{Identity, RunSystem};

#[async_std::test]
#[ignore]
#[cfg(feature = "systemd_227")]
async fn test_root_no_new_priv() {
    const PATH: &'static str = concat!(env!("OUT_DIR"), "/test-aux/nosgid");
    let r = RunSystem::new(PATH)
        .identity(Identity::user_group("nobody", "nogroup"))
        .no_new_privileges()
        .start()
        .await
        .expect("should be able to start test program")
        .wait()
        .await
        .expect("should be able to get the status of the Run");
    assert!(!r.is_failed(), "test program should finish successfully");
}

#[async_std::test]
#[ignore]
#[cfg(feature = "systemd_247")]
async fn test_root_protect_proc() {
    let r = RunSystem::new("/bin/test")
        .args(&["-e", "/proc/1"])
        .identity(Identity::dynamic())
        .protect_proc(systemd_run::ProtectProc::invisible())
        .start()
        .await
        .expect("should be able to start /bin/test")
        .wait()
        .await
        .expect("should be able to get the status of the Run");
    assert!(r.is_failed(), "/proc/1 should be invisible");
}