systemd-client

[systemd dbus] client lib using [dbus-codegen]

Examples

blocking ```rust use systemdclient::{ buildblocking_client, manager::blocking::OrgFreedesktopSystemd1Manager, models::{IntoModel, Unit}, Result, SystemdObjectType, };

fn main() -> Result<()> { let client = buildblockingclient(SystemdObjectType::Manager)?; let units = client.listunits()?; for unit in units { let unit: Unit = unit.intomodel()?; println!("{:#?}", unit); } Ok(()) } nonblock rust use systemdclient::{ buildnonblock_client, manager::nonblock::OrgFreedesktopSystemd1Manager, models::{IntoModel, Unit}, Result, SystemdObjectType, };

[tokio::main]

pub async fn main() -> Result<()> { let (client, jh) = buildnonblockclient(SystemdObjectType::Manager)?; let units = client.listunits().await?; for unit in units { let unit: Unit = unit.intomodel()?; println!("{:#?}", unit); } // close connection jh.abort(); Ok(()) } ```

Development

Install Tools

sh sudo apt install libdbus-1-dev pkg-config

Codegen

edit build.rs and save