[systemd dbus
] client lib using [dbus-codegen
]
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,
};
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(()) } ```
sh
sudo apt install libdbus-1-dev pkg-config
edit build.rs
and save