From: Lennart Poettering Date: Wed, 17 Oct 2012 23:19:35 +0000 (+0200) Subject: manager: connect SIGRTMIN+24 to terminating --user instances X-Git-Tag: v195~73 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=600b704eb0fe4b4fd2901017082254634823f02d manager: connect SIGRTMIN+24 to terminating --user instances --- diff --git a/man/systemd.xml b/man/systemd.xml index f14e3eb9a..77585248a 100644 --- a/man/systemd.xml +++ b/man/systemd.xml @@ -837,6 +837,14 @@ line. + + SIGRTMIN+24 + + Immediately exits the + manager (only available for --user + instances). + + SIGRTMIN+26 SIGRTMIN+27 diff --git a/src/core/manager.c b/src/core/manager.c index b19fc3d50..f932c79a1 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -199,6 +199,7 @@ static int manager_setup_signals(Manager *m) { SIGRTMIN+21, /* systemd: disable status messages */ SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */ SIGRTMIN+23, /* systemd: set log level to LOG_INFO */ + SIGRTMIN+24, /* systemd: Immediate exit (--user only) */ SIGRTMIN+26, /* systemd: set log target to journal-or-kmsg */ SIGRTMIN+27, /* systemd: set log target to console */ SIGRTMIN+28, /* systemd: set log target to kmsg */ @@ -1272,6 +1273,15 @@ static int manager_process_signal_fd(Manager *m) { log_notice("Setting log level to info."); break; + case 24: + if (m->running_as == SYSTEMD_USER) { + m->exit_code = MANAGER_EXIT; + return 0; + } + + /* This is a nop on init */ + break; + case 26: log_set_target(LOG_TARGET_JOURNAL_OR_KMSG); log_notice("Setting log target to journal-or-kmsg.");