mgr: Parse all possible systemd unit states
This commit is contained in:
@@ -14,6 +14,7 @@ pub enum Error {
|
|||||||
pub(crate) enum UnitStatus {
|
pub(crate) enum UnitStatus {
|
||||||
Active,
|
Active,
|
||||||
Inactive,
|
Inactive,
|
||||||
|
Failed,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl UnitStatus {
|
impl UnitStatus {
|
||||||
@@ -28,8 +29,9 @@ pub(crate) mod user {
|
|||||||
pub(crate) fn unit_status(unit: &str) -> Result<UnitStatus, Error> {
|
pub(crate) fn unit_status(unit: &str) -> Result<UnitStatus, Error> {
|
||||||
let output = cmd::run_command("systemctl", &["--user", "is-active", unit])?;
|
let output = cmd::run_command("systemctl", &["--user", "is-active", unit])?;
|
||||||
match output.stdout.as_str().trim() {
|
match output.stdout.as_str().trim() {
|
||||||
"active" => Ok(UnitStatus::Active),
|
"active" | "activating" | "reloading" | "refreshing" => Ok(UnitStatus::Active),
|
||||||
"inactive" => Ok(UnitStatus::Inactive),
|
"inactive" | "deactivating" | "maintenance" => Ok(UnitStatus::Inactive),
|
||||||
|
"failed" => Ok(UnitStatus::Failed),
|
||||||
other => Err(Error::UnknownStatusOutput {
|
other => Err(Error::UnknownStatusOutput {
|
||||||
output: other.to_owned(),
|
output: other.to_owned(),
|
||||||
}),
|
}),
|
||||||
|
|||||||
Reference in New Issue
Block a user