diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-02-09 20:08:55 -0500 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-02-11 19:14:47 -0500 |
commit | 4daf54a851e4fb7ed1a13c3117bba12528fd2c7f (patch) | |
tree | dd9db902bc6e5500bd2b5784714b4052265f0cf4 /src | |
parent | c480d2f8bc63565e40bd969054ebd97e9e2deca6 (diff) |
journald: log provenience of signals
Diffstat (limited to 'src')
-rw-r--r-- | src/core/job.c | 3 | ||||
-rw-r--r-- | src/core/manager.c | 21 | ||||
-rw-r--r-- | src/journal/journald-server.c | 2 | ||||
-rw-r--r-- | src/shared/log.c | 17 | ||||
-rw-r--r-- | src/shared/log.h | 5 |
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); |