chiark / gitweb /
Merge branch 'master' of ssh://git.freedesktop.org/git/systemd
[elogind.git] / src / systemctl.c
index 53b6b47b6129662848fa121dd1bf85431df01597..05e6ac91478d60fc2911f8335461a995f23c2569 100644 (file)
@@ -43,6 +43,7 @@
 #include "strv.h"
 #include "dbus-common.h"
 #include "cgroup-show.h"
+#include "cgroup-util.h"
 #include "list.h"
 
 static const char *arg_type = NULL;
@@ -1053,6 +1054,7 @@ typedef struct UnitStatusInfo {
 
 static void print_status_info(UnitStatusInfo *i) {
         ExecStatusInfo *p;
+        int r;
 
         assert(i);
 
@@ -1098,9 +1100,6 @@ static void print_status_info(UnitStatusInfo *i) {
         else if (i->what)
                 printf("\t    What: %s\n", i->what);
 
-        if (i->status_text)
-                printf("\t  Status: \"%s\"\n", i->status_text);
-
         if (i->accept)
                 printf("\tAccepted: %u; Connected: %u\n", i->n_accepted, i->n_connections);
 
@@ -1173,6 +1172,9 @@ static void print_status_info(UnitStatusInfo *i) {
                 printf("\n");
         }
 
+        if (i->status_text)
+                printf("\t  Status: \"%s\"\n", i->status_text);
+
         if (i->default_control_group) {
                 unsigned c;
 
@@ -1183,7 +1185,10 @@ static void print_status_info(UnitStatusInfo *i) {
                 else
                         c = 0;
 
-                show_cgroup_recursive(i->default_control_group, "\t\t  ", c);
+                if ((r = cg_init()) < 0)
+                        log_error("Failed to initialize libcg: %s", strerror(-r));
+                else
+                        show_cgroup_recursive(i->default_control_group, "\t\t  ", c);
         }
 }
 
@@ -3051,7 +3056,7 @@ static int talk_upstart(void) {
         if (utmp_get_runlevel(&previous, NULL) < 0)
                 previous = 'N';
 
-        if (!(bus = dbus_connection_open("unix:abstract=/com/ubuntu/upstart", &error))) {
+        if (!(bus = dbus_connection_open_private("unix:abstract=/com/ubuntu/upstart", &error))) {
                 if (dbus_error_has_name(&error, DBUS_ERROR_NO_SERVER)) {
                         r = 0;
                         goto finish;
@@ -3115,8 +3120,10 @@ finish:
         if (reply)
                 dbus_message_unref(reply);
 
-        if (bus)
+        if (bus) {
+                dbus_connection_close(bus);
                 dbus_connection_unref(bus);
+        }
 
         dbus_error_free(&error);
 
@@ -3439,8 +3446,10 @@ int main(int argc, char*argv[]) {
 
 finish:
 
-        if (bus)
+        if (bus) {
+                dbus_connection_close(bus);
                 dbus_connection_unref(bus);
+        }
 
         dbus_error_free(&error);