|
|
a1c89c5 |
From 253ee27a0c7a410d27d490bb79ea97caed6a2b68 Mon Sep 17 00:00:00 2001
|
|
|
a1c89c5 |
From: Lennart Poettering <lennart@poettering.net>
|
|
|
a1c89c5 |
Date: Sat, 23 Jul 2011 04:15:38 +0200
|
|
|
a1c89c5 |
Subject: [PATCH] manager: add log control via RT signals
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
---
|
|
|
a1c89c5 |
[hand-edited to remove unrelated TODO edits -- michich]
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
diff --git a/man/systemd.xml b/man/systemd.xml
|
|
|
a1c89c5 |
index 142c1d6..5129fbb 100644
|
|
|
a1c89c5 |
--- a/man/systemd.xml
|
|
|
a1c89c5 |
+++ b/man/systemd.xml
|
|
|
a1c89c5 |
@@ -800,6 +800,44 @@
|
|
|
a1c89c5 |
on the kernel command
|
|
|
a1c89c5 |
line.</para></listitem>
|
|
|
a1c89c5 |
</varlistentry>
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ <varlistentry>
|
|
|
a1c89c5 |
+ <term>SIGRTMIN+22</term>
|
|
|
a1c89c5 |
+ <term>SIGRTMIN+23</term>
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ <listitem><para>Sets the log level to
|
|
|
a1c89c5 |
+ <literal>debug</literal>
|
|
|
a1c89c5 |
+ (resp. <literal>info</literal> on
|
|
|
a1c89c5 |
+ <literal>SIGRTMIN+32</literal>), as
|
|
|
a1c89c5 |
+ controlled via
|
|
|
a1c89c5 |
+ <varname>systemd.log_level=debug</varname>
|
|
|
a1c89c5 |
+ (resp. <varname>systemd.log_level=info</varname>
|
|
|
a1c89c5 |
+ on <literal>SIGRTMIN+23</literal>) on
|
|
|
a1c89c5 |
+ the kernel command
|
|
|
a1c89c5 |
+ line.</para></listitem>
|
|
|
a1c89c5 |
+ </varlistentry>
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ <varlistentry>
|
|
|
a1c89c5 |
+ <term>SIGRTMIN+27</term>
|
|
|
a1c89c5 |
+ <term>SIGRTMIN+28</term>
|
|
|
a1c89c5 |
+ <term>SIGRTMIN+29</term>
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ <listitem><para>Sets the log level to
|
|
|
a1c89c5 |
+ <literal>console</literal>
|
|
|
a1c89c5 |
+ (resp. <literal>kmsg</literal> on
|
|
|
a1c89c5 |
+ <literal>SIGRTMIN+28</literal>;
|
|
|
a1c89c5 |
+ resp.<literal>syslog-or-kmsg</literal>
|
|
|
a1c89c5 |
+ on <literal>SIGRTMIN+29</literal>), as
|
|
|
a1c89c5 |
+ controlled via
|
|
|
a1c89c5 |
+ <varname>systemd.log_target=console</varname>
|
|
|
a1c89c5 |
+ (resp. <varname>systemd.log_target=kmsg</varname>
|
|
|
a1c89c5 |
+ on <literal>SIGRTMIN+28</literal>;
|
|
|
a1c89c5 |
+ resp
|
|
|
a1c89c5 |
+ <varname>systemd.log_target=syslog-or-kmsg</varname>
|
|
|
a1c89c5 |
+ on <literal>SIGRTMIN+29</literal>) on
|
|
|
a1c89c5 |
+ the kernel command
|
|
|
a1c89c5 |
+ line.</para></listitem>
|
|
|
a1c89c5 |
+ </varlistentry>
|
|
|
a1c89c5 |
</variablelist>
|
|
|
a1c89c5 |
</refsect1>
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
diff --git a/src/manager.c b/src/manager.c
|
|
|
a1c89c5 |
index c1242ae..cdd618e 100644
|
|
|
a1c89c5 |
--- a/src/manager.c
|
|
|
a1c89c5 |
+++ b/src/manager.c
|
|
|
a1c89c5 |
@@ -186,6 +186,11 @@ static int manager_setup_signals(Manager *m) {
|
|
|
a1c89c5 |
SIGRTMIN+16, /* systemd: Immediate kexec */
|
|
|
a1c89c5 |
SIGRTMIN+20, /* systemd: enable status messages */
|
|
|
a1c89c5 |
SIGRTMIN+21, /* systemd: disable status messages */
|
|
|
a1c89c5 |
+ SIGRTMIN+22, /* systemd: set log level to LOG_DEBUG */
|
|
|
a1c89c5 |
+ SIGRTMIN+23, /* systemd: set log level to LOG_INFO */
|
|
|
a1c89c5 |
+ SIGRTMIN+27, /* systemd: set log target to console */
|
|
|
a1c89c5 |
+ SIGRTMIN+28, /* systemd: set log target to kmsg */
|
|
|
a1c89c5 |
+ SIGRTMIN+29, /* systemd: set log target to syslog-or-kmsg */
|
|
|
a1c89c5 |
-1);
|
|
|
a1c89c5 |
assert_se(sigprocmask(SIG_SETMASK, &mask, NULL) == 0);
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
@@ -2200,6 +2205,7 @@ static int manager_process_signal_fd(Manager *m) {
|
|
|
a1c89c5 |
break;
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
default: {
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
/* Starting SIGRTMIN+0 */
|
|
|
a1c89c5 |
static const char * const target_table[] = {
|
|
|
a1c89c5 |
[0] = SPECIAL_DEFAULT_TARGET,
|
|
|
a1c89c5 |
@@ -2244,6 +2250,31 @@ static int manager_process_signal_fd(Manager *m) {
|
|
|
a1c89c5 |
m->show_status = false;
|
|
|
a1c89c5 |
break;
|
|
|
a1c89c5 |
|
|
|
a1c89c5 |
+ case 22:
|
|
|
a1c89c5 |
+ log_set_max_level(LOG_DEBUG);
|
|
|
a1c89c5 |
+ log_notice("Setting log level to debug.");
|
|
|
a1c89c5 |
+ break;
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ case 23:
|
|
|
a1c89c5 |
+ log_set_max_level(LOG_INFO);
|
|
|
a1c89c5 |
+ log_notice("Setting log level to info.");
|
|
|
a1c89c5 |
+ break;
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ case 27:
|
|
|
a1c89c5 |
+ log_set_target(LOG_TARGET_CONSOLE);
|
|
|
a1c89c5 |
+ log_notice("Setting log target to console.");
|
|
|
a1c89c5 |
+ break;
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ case 28:
|
|
|
a1c89c5 |
+ log_set_target(LOG_TARGET_KMSG);
|
|
|
a1c89c5 |
+ log_notice("Setting log target to kmsg.");
|
|
|
a1c89c5 |
+ break;
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
+ case 29:
|
|
|
a1c89c5 |
+ log_set_target(LOG_TARGET_SYSLOG_OR_KMSG);
|
|
|
a1c89c5 |
+ log_notice("Setting log target to syslog-or-kmsg.");
|
|
|
a1c89c5 |
+ break;
|
|
|
a1c89c5 |
+
|
|
|
a1c89c5 |
default:
|
|
|
a1c89c5 |
log_warning("Got unhandled signal <%s>.", strna(signal_to_string(sfsi.ssi_signo)));
|
|
|
a1c89c5 |
}
|
|
|
a1c89c5 |
--
|
|
|
a1c89c5 |
1.7.4.4
|
|
|
a1c89c5 |
|