chiark / gitweb /
test: update test-engine.c to work again
[elogind.git] / src / systemctl.vala
index e1e8a0c832e1d3c6be404193f3108abedc9f3460..6cce93bec6ba6833c7135f5189c0edd585cefe89 100644 (file)
@@ -128,16 +128,17 @@ int main (string[] args) {
                         "  clear-jobs                      Cancel all jobs\n" +
                         "  load [NAME...]                  Load one or more units\n" +
                         "  cancel [JOB...]                 Cancel one or more jobs\n" +
-                        "  start [NAME...]                 Start on or more units\n" +
-                        "  stop [NAME...]                  Stop on or more units\n" +
-                        "  enter [NAME]                    Start one unit and stop all others\n" +
-                        "  restart [NAME...]               Restart on or more units\n" +
-                        "  reload [NAME...]                Reload on or more units\n" +
+                        "  start [NAME...]                 Start one or more units\n" +
+                        "  stop [NAME...]                  Stop one or more units\n" +
+                        "  restart [NAME...]               Restart one or more units\n" +
+                        "  reload [NAME...]                Reload one or more units\n" +
+                        "  isolate [NAME]                  Start one unit and stop all others\n" +
                         "  monitor                         Monitor unit/job changes\n" +
                         "  dump                            Dump server status\n" +
                         "  snapshot [NAME]                 Create a snapshot\n" +
                         "  daemon-reload                   Reload daemon configuration\n" +
                         "  daemon-reexecute                Reexecute daemon\n" +
+                        "  daemon-exit                     Ask the daemon to quit\n" +
                         "  show-environment                Dump environment\n" +
                         "  set-environment [NAME=VALUE...] Set one or more environment variables\n" +
                         "  unset-environment [NAME...]     Unset one or more environment variables\n");
@@ -251,25 +252,17 @@ int main (string[] args) {
 
                         for (int i = 2; i < args.length; i++) {
 
-                                ObjectPath p = manager.load_unit(args[i]);
-
-                                Unit u = bus.get_object(
-                                                "org.freedesktop.systemd1",
-                                                p,
-                                                "org.freedesktop.systemd1.Unit") as Unit;
-
                                 string mode = replace ? "replace" : "fail";
-
                                 ObjectPath j = null;
 
                                 if (args[1] == "start")
-                                        j = u.start(mode);
+                                        j = manager.start_unit(args[i], mode);
                                 else if (args[1] == "stop")
-                                        j = u.stop(mode);
+                                        j = manager.stop_unit(args[i], mode);
                                 else if (args[1] == "restart")
-                                        j = u.restart(mode);
+                                        j = manager.restart_unit(args[i], mode);
                                 else if (args[1] == "reload")
-                                        j = u.reload(mode);
+                                        j = manager.reload_unit(args[i], mode);
 
                                 if (block)
                                         jobs.append(j);
@@ -282,14 +275,7 @@ int main (string[] args) {
                                 return 1;
                         }
 
-                        ObjectPath p = manager.load_unit(args[2]);
-
-                        Unit u = bus.get_object(
-                                        "org.freedesktop.systemd1",
-                                        p,
-                                        "org.freedesktop.systemd1.Unit") as Unit;
-
-                        ObjectPath j = u.start("isolate");
+                        ObjectPath j = manager.start_unit(args[2], "isolate");
 
                         if (block) {
                                 manager.subscribe();
@@ -300,6 +286,15 @@ int main (string[] args) {
 
                         manager.subscribe();
 
+                        var unit_list = manager.list_units();
+
+                        foreach (var i in unit_list) {
+                                monitor_on_unit_new(i.id, i.unit_path);
+
+                                if (i.job_id != 0)
+                                        monitor_on_job_new(i.job_id, i.job_path);
+                        }
+
                         manager.unit_new += monitor_on_unit_new;
                         manager.unit_removed += monitor_on_unit_removed;
                         manager.job_new += monitor_on_job_new;