X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fservice.c;h=fc952e848f08ee9d783c9f3c97a2f9e7e0f788a0;hp=f10582d89e14aaeb6ad114494fbd62eac938ed55;hb=f49650cee2c5256dc0491432e1f12a4ae19be6c5;hpb=8bb2d17d2b89e87b2e9d8f6c147a757f4670b0fc;ds=sidebyside diff --git a/src/core/service.c b/src/core/service.c index f10582d89..fc952e848 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -694,9 +694,13 @@ static void service_set_state(Service *s, ServiceState state) { /* For remain_after_exit services, let's see if we can "release" the * hold on the console, since unit_notify() only does that in case of * change of state */ - if (state == SERVICE_EXITED && s->remain_after_exit && + if (state == SERVICE_EXITED && + s->remain_after_exit && UNIT(s)->manager->n_on_console > 0) { - ExecContext *ec = unit_get_exec_context(UNIT(s)); + + ExecContext *ec; + + ec = unit_get_exec_context(UNIT(s)); if (ec && exec_context_may_touch_console(ec)) { Manager *m = UNIT(s)->manager;