#include "strv.h"
#include "dbus-common.h"
#include "cgroup-show.h"
+#include "cgroup-util.h"
#include "list.h"
static const char *arg_type = NULL;
static const char *arg_property = NULL;
static bool arg_all = false;
-static bool arg_replace = false;
+static bool arg_fail = false;
static bool arg_session = false;
static bool arg_no_block = false;
static bool arg_immediate = false;
(streq(args[0], "isolate") ||
streq(args[0], "rescue") ||
streq(args[0], "emergency")) ? "isolate" :
- arg_replace ? "replace" :
- "fail";
+ arg_fail ? "fail" :
+ "replace";
one_name = table[verb_to_action(args[0])];
static void print_status_info(UnitStatusInfo *i) {
ExecStatusInfo *p;
+ int r;
assert(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);
printf("\n");
}
+ if (i->status_text)
+ printf("\t Status: \"%s\"\n", i->status_text);
+
if (i->default_control_group) {
unsigned c;
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);
}
}
" -t --type=TYPE List only units of a particular type\n"
" -p --property=NAME Show only properties by this name\n"
" -a --all Show all units/properties, including dead/empty ones\n"
- " --replace When installing a new job, replace existing conflicting ones\n"
+ " --fail When installing a new job, fail if conflicting jobs are pending\n"
" --system Connect to system bus\n"
" --session Connect to session bus\n"
" -q --quiet Suppress output\n"
static int systemctl_parse_argv(int argc, char *argv[]) {
enum {
- ARG_REPLACE = 0x100,
+ ARG_FAIL = 0x100,
ARG_SESSION,
ARG_SYSTEM,
ARG_NO_BLOCK,
{ "type", required_argument, NULL, 't' },
{ "property", required_argument, NULL, 'p' },
{ "all", no_argument, NULL, 'a' },
- { "replace", no_argument, NULL, ARG_REPLACE },
+ { "fail", no_argument, NULL, ARG_FAIL },
{ "session", no_argument, NULL, ARG_SESSION },
{ "system", no_argument, NULL, ARG_SYSTEM },
{ "no-block", no_argument, NULL, ARG_NO_BLOCK },
arg_all = true;
break;
- case ARG_REPLACE:
- arg_replace = true;
+ case ARG_FAIL:
+ arg_fail = true;
break;
case ARG_SESSION:
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;
if (reply)
dbus_message_unref(reply);
- if (bus)
+ if (bus) {
+ dbus_connection_close(bus);
dbus_connection_unref(bus);
+ }
dbus_error_free(&error);
finish:
- if (bus)
+ if (bus) {
+ dbus_connection_close(bus);
dbus_connection_unref(bus);
+ }
dbus_error_free(&error);