X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=systemctl.vala;h=4de856e756feeb569402167eee2a4c901ad79cc6;hb=41447faf1fc57463becabce399d983df762a104c;hp=6c01ad1263bd14ece5e17ef39a2ab0b30f53d721;hpb=b152adec93b05c0d01b240e0f28326eb1d8e18e9;p=elogind.git diff --git a/systemctl.vala b/systemctl.vala index 6c01ad126..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); @@ -224,7 +226,17 @@ int main (string[] args) { } else if (args[1] == "dump") stdout.puts(manager.dump()); - else { + 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; }