+ } else if (args[1] == "isolate") {
+
+ if (args.length != 3) {
+ stderr.printf("Missing argument.\n");
+ return 1;
+ }
+
+ ObjectPath p = manager.get_unit(args[2]);
+
+ Unit u = bus.get_object(
+ "org.freedesktop.systemd1",
+ p,
+ "org.freedesktop.systemd1.Unit") as Unit;
+
+ u.start("isolate");
+
+ } else if (args[1] == "monitor") {
+
+ manager.subscribe();
+
+ manager.unit_new += on_unit_new;
+ manager.unit_removed += on_unit_removed;
+ manager.job_new += on_job_new;
+ manager.job_removed += on_job_removed;
+
+ 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 if (args[1] == "daemon-reload")
+ manager.reload();
+ else if (args[1] == "daemon-reexecute" || args[1] == "daemon-reexec")
+ manager.reexecute();
+ else if (args[1] == "daemon-exit")
+ manager.exit();
+ else {