summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-02-09 20:08:55 -0500
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-02-11 19:14:47 -0500
commit4daf54a851e4fb7ed1a13c3117bba12528fd2c7f (patch)
treedd9db902bc6e5500bd2b5784714b4052265f0cf4
parentc480d2f8bc63565e40bd969054ebd97e9e2deca6 (diff)
journald: log provenience of signals
-rw-r--r--src/core/job.c3
-rw-r--r--src/core/manager.c21
-rw-r--r--src/journal/journald-server.c2
-rw-r--r--src/shared/log.c17
-rw-r--r--src/shared/log.h5
5 files changed, 26 insertions, 22 deletions
diff --git a/src/core/job.c b/src/core/job.c
index 941f956025..feeb563177 100644
--- a/src/core/job.c
+++ b/src/core/job.c
@@ -1118,9 +1118,6 @@ int job_get_timeout(Job *j, uint64_t *timeout) {
*timeout = MIN(x, y);
- log_info("job_get_timeout %s %d/%"PRIu64" %d/%"PRIu64" -> 1/%"PRIu64,
- j->unit->id, r, x, q, y, *timeout);
-
return 1;
}
diff --git a/src/core/manager.c b/src/core/manager.c
index f7e5cbdcf3..388697cdf5 100644
--- a/src/core/manager.c
+++ b/src/core/manager.c
@@ -1532,23 +1532,10 @@ static int manager_dispatch_signal_fd(sd_event_source *source, int fd, uint32_t
return -errno;
}
- if (sfsi.ssi_pid > 0) {
- _cleanup_free_ char *p = NULL;
-
- get_process_comm(sfsi.ssi_pid, &p);
-
- log_full(sfsi.ssi_signo == SIGCHLD ||
- (sfsi.ssi_signo == SIGTERM && m->running_as == SYSTEMD_USER)
- ? LOG_DEBUG : LOG_INFO,
- "Received SIG%s from PID "PID_FMT" (%s).",
- signal_to_string(sfsi.ssi_signo),
- sfsi.ssi_pid, strna(p));
- } else
- log_full(sfsi.ssi_signo == SIGCHLD ||
- (sfsi.ssi_signo == SIGTERM && m->running_as == SYSTEMD_USER)
- ? LOG_DEBUG : LOG_INFO,
- "Received SIG%s.",
- signal_to_string(sfsi.ssi_signo));
+ log_received_signal(sfsi.ssi_signo == SIGCHLD ||
+ (sfsi.ssi_signo == SIGTERM && m->running_as == SYSTEMD_USER)
+ ? LOG_DEBUG : LOG_INFO,
+ &sfsi);
switch (sfsi.ssi_signo) {
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index d3a1c574bd..9ca3859297 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -1251,7 +1251,7 @@ static int dispatch_sigterm(sd_event_source *es, const struct signalfd_siginfo *
assert(s);
- log_info("Received SIG%s", signal_to_string(si->ssi_signo));
+ log_received_signal(LOG_INFO, si);
sd_event_exit(s->event, 0);
return 0;
diff --git a/src/shared/log.c b/src/shared/log.c
index 2a075ffeba..ee20921f78 100644
--- a/src/shared/log.c
+++ b/src/shared/log.c
@@ -973,3 +973,20 @@ static const char *const log_target_table[] = {
};
DEFINE_STRING_TABLE_LOOKUP(log_target, LogTarget);
+
+void log_received_signal(int level, const struct signalfd_siginfo *si) {
+ if (si->ssi_pid > 0) {
+ _cleanup_free_ char *p = NULL;
+
+ get_process_comm(si->ssi_pid, &p);
+
+ log_full(level,
+ "Received SIG%s from PID "PID_FMT" (%s).",
+ signal_to_string(si->ssi_signo),
+ si->ssi_pid, strna(p));
+ } else
+ log_full(level,
+ "Received SIG%s.",
+ signal_to_string(si->ssi_signo));
+
+}
diff --git a/src/shared/log.h b/src/shared/log.h
index 3dcfa11308..6a0f6735c5 100644
--- a/src/shared/log.h
+++ b/src/shared/log.h
@@ -21,9 +21,10 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
-#include <syslog.h>
#include <stdbool.h>
#include <stdarg.h>
+#include <syslog.h>
+#include <sys/signalfd.h>
#include <errno.h>
#include "macro.h"
@@ -167,3 +168,5 @@ const char *log_target_to_string(LogTarget target) _const_;
LogTarget log_target_from_string(const char *s) _pure_;
#define MESSAGE_ID(x) "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VAL(x)
+
+void log_received_signal(int level, const struct signalfd_siginfo *si);