machined: don't force terminate registered machines

When a machine is registered in machined with CreateMachine it is OK to
kill the machine when it is terminated, but when an existing unit is
simply registered via RegisterMachine we shouldn't do that, as the unit
is controlled by somebody else.
This commit is contained in:
Lennart Poettering 2014-07-03 12:48:51 +02:00
parent 37520c1bec
commit 206e7a5f7b
3 changed files with 8 additions and 4 deletions

View file

@ -360,10 +360,12 @@ static int machine_stop_scope(Machine *m) {
if (!m->unit)
return 0;
r = manager_stop_unit(m->manager, m->unit, &error, &job);
if (r < 0) {
log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
return r;
if (!m->registered) {
r = manager_stop_unit(m->manager, m->unit, &error, &job);
if (r < 0) {
log_error("Failed to stop machine scope: %s", bus_error_message(&error, r));
return r;
}
}
free(m->scope_job);

View file

@ -72,6 +72,7 @@ struct Machine {
bool in_gc_queue:1;
bool started:1;
bool registered:1;
sd_bus_message *create_message;

View file

@ -223,6 +223,7 @@ static int method_create_or_register_machine(Manager *manager, sd_bus_message *m
m->leader = leader;
m->class = c;
m->id = id;
m->registered = true;
if (!isempty(service)) {
m->service = strdup(service);