systemctl: use isolate when called as telinit for a runlevel

This commit is contained in:
Lennart Poettering 2010-09-14 02:22:55 +02:00
parent e43ac8788b
commit 6f0d624ec7
2 changed files with 6 additions and 2 deletions

View file

@ -119,7 +119,7 @@ static void change_runlevel(Server *s, int runlevel) {
else
mode = "replace";
log_debug("Running request %s", target);
log_debug("Running request %s/start/%s", target, mode);
if (!(m = dbus_message_new_method_call("org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "StartUnit"))) {
log_error("Could not allocate message.");

View file

@ -1254,7 +1254,11 @@ static int start_unit(DBusConnection *bus, char **args, unsigned n) {
method = "StartUnit";
mode = (arg_action == ACTION_EMERGENCY ||
arg_action == ACTION_RESCUE) ? "isolate" : "replace";
arg_action == ACTION_RESCUE ||
arg_action == ACTION_RUNLEVEL2 ||
arg_action == ACTION_RUNLEVEL3 ||
arg_action == ACTION_RUNLEVEL4 ||
arg_action == ACTION_RUNLEVEL5) ? "isolate" : "replace";
one_name = table[arg_action];
}