#systemd #process #service #transient #running #manager #per-user

systemd-run

A Rust crate for running processes as Systemd transient services

8 breaking releases

0.9.0 Nov 6, 2024
0.7.1 Feb 22, 2024
0.6.0 Dec 1, 2023
0.5.0 Nov 27, 2023
0.2.0 Jul 14, 2022

#352 in Unix APIs

Download history 9/week @ 2024-09-21 10/week @ 2024-09-28 240/week @ 2024-11-02 32/week @ 2024-11-09 5/week @ 2024-11-16 2/week @ 2024-11-23 118/week @ 2024-11-30

163 downloads per month

MIT/Apache

71KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments C 136 SLoC // 0.1% comments C++ 37 SLoC

Contains (ELF exe/lib, 18KB) test-aux/setuid

systemd_run

This is the crate for running processes as Systemd transient services.

Status: Highly unstable, at early development cycle.

Example code

This code starts /bin/true as a Systemd transient service, running in the per-user service manager of your login session, and wait for it to finish.

#[async_std::main]
async fn main() -> std::result::Result<(), Box<dyn std::error::Error>> {
	let status = systemd_run::RunUser::new("/bin/true")
		.start()
		.await?
		.wait()
		.await?;
	dbg!(status);
	Ok(())
}

Dependencies

~9–19MB
~283K SLoC