X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Finitctl.c;h=fef45007ba8c49a3641648f244368bbe8b4c655d;hp=34c38839df3a08255a4ff7a6816d3a7bb750be2e;hb=ddb26e1818f67c2b97313d2ccf7468b2240ec086;hpb=fb1af5b0fe8e1530008bc0545b6a2e042e84c15f diff --git a/src/initctl.c b/src/initctl.c index 34c38839d..fef45007b 100644 --- a/src/initctl.c +++ b/src/initctl.c @@ -39,7 +39,7 @@ #include "log.h" #include "list.h" #include "initreq.h" -#include "manager.h" +#include "special.h" #include "sd-daemon.h" #define SERVER_FD_MAX 16 @@ -72,15 +72,15 @@ static const char *translate_runlevel(int runlevel) { const int runlevel; const char *special; } table[] = { - { '0', SPECIAL_RUNLEVEL0_TARGET }, - { '1', SPECIAL_RUNLEVEL1_TARGET }, - { 's', SPECIAL_RUNLEVEL1_TARGET }, - { 'S', SPECIAL_RUNLEVEL1_TARGET }, + { '0', SPECIAL_POWEROFF_TARGET }, + { '1', SPECIAL_RESCUE_TARGET }, + { 's', SPECIAL_RESCUE_TARGET }, + { 'S', SPECIAL_RESCUE_TARGET }, { '2', SPECIAL_RUNLEVEL2_TARGET }, { '3', SPECIAL_RUNLEVEL3_TARGET }, { '4', SPECIAL_RUNLEVEL4_TARGET }, { '5', SPECIAL_RUNLEVEL5_TARGET }, - { '6', SPECIAL_RUNLEVEL6_TARGET }, + { '6', SPECIAL_REBOOT_TARGET }, }; unsigned i; @@ -354,6 +354,10 @@ int main(int argc, char *argv[]) { if (server_init(&server, (unsigned) n) < 0) return 2; + sd_notify(false, + "READY=1\n" + "STATUS=Processing requests..."); + for (;;) { struct epoll_event event; int k; @@ -378,6 +382,9 @@ int main(int argc, char *argv[]) { r = 0; fail: + sd_notify(false, + "STATUS=Shutting down..."); + server_done(&server); log_info("systemd-initctl stopped as pid %llu", (unsigned long long) getpid());