X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=systemctl.vala;h=4de856e756feeb569402167eee2a4c901ad79cc6;hb=41447faf1fc57463becabce399d983df762a104c;hp=22a971cc82071950f6a45be4f319f8ef7a5309e4;hpb=4f320e4d73220c192714896ece07e56682ac1462;p=elogind.git diff --git a/systemctl.vala b/systemctl.vala index 22a971cc8..4de856e75 100644 --- a/systemctl.vala +++ b/systemctl.vala @@ -83,7 +83,9 @@ int main (string[] args) { " stop [NAME...] Stop on or more units\n" + " restart [NAME...] Restart on or more units\n" + " reload [NAME...] Reload on or more units\n" + - " monitor Monitor unit/job changes\n"); + " monitor Monitor unit/job changes\n" + + " dump Dump servier status\n" + + " snapshot [NAME] Create a snapshot\n"); try { context.parse(ref args); @@ -104,7 +106,7 @@ int main (string[] args) { uint n = 0; Posix.qsort(list, list.length, sizeof(Manager.UnitInfo), unit_info_compare); - stdout.printf("%-45s %-6s %-12s %-17s\n", "UNIT", "LOAD", "ACTIVE", "JOB"); + stdout.printf("%-45s %-6s %-12s %-12s %-17s\n", "UNIT", "LOAD", "ACTIVE", "SUB", "JOB"); foreach (var i in list) { @@ -114,7 +116,7 @@ int main (string[] args) { if (!all && i.active_state == "inactive") continue; - stdout.printf("%-45s %-6s %-12s", i.id, i.load_state, i.active_state); + stdout.printf("%-45s %-6s %-12s %-12s", i.id, i.load_state, i.active_state, i.sub_state); if (i.job_id != 0) stdout.printf(" → %-15s", i.job_type); @@ -222,6 +224,18 @@ int main (string[] args) { MainLoop l = new MainLoop(); l.run(); + } else if (args[1] == "dump") + stdout.puts(manager.dump()); + else if (args[1] == "snapshot") { + + ObjectPath p = manager.create_snapshot(args.length > 2 ? args[2] : ""); + + Unit u = bus.get_object( + "org.freedesktop.systemd1", + p, + "org.freedesktop.systemd1.Unit") as Unit; + + stdout.printf("%s\n", u.id); } else { stderr.printf("Unknown command %s.\n", args[1]); return 1;