diff --git a/man/systemd.xml b/man/systemd.xml
index f14e3eb9aea..77585248a91 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 b19fc3d5085..f932c79a1b8 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.");