X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=manager.c;fp=manager.c;h=c6555d40bc9438f459e977434530605a824bd0c4;hb=e11dc4a213876143e7111dc0afee72a5cecd3b12;hp=4244806ce28c42eb1325209bf681b40690540215;hpb=a0fcc5f6ce46ae69649f42e844249c54aa1e7b2e;p=elogind.git diff --git a/manager.c b/manager.c index 4244806ce..c6555d40b 100644 --- a/manager.c +++ b/manager.c @@ -1765,9 +1765,15 @@ static int manager_process_signal_fd(Manager *m) { sigchld = true; break; - case SIGINT: case SIGTERM: + if (m->running_as == MANAGER_INIT) + m->exit_code = MANAGER_REEXECUTE; + else + m->exit_code = MANAGER_EXIT; + return 0; + + case SIGINT: if (m->running_as == MANAGER_INIT) { manager_start_target(m, SPECIAL_CTRL_ALT_DEL_TARGET); break; @@ -1777,7 +1783,6 @@ static int manager_process_signal_fd(Manager *m) { return 0; case SIGWINCH: - if (m->running_as == MANAGER_INIT) manager_start_target(m, SPECIAL_KBREQUEST_TARGET);