diff options
Diffstat (limited to 'src/journal/journald.c')
-rw-r--r-- | src/journal/journald.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/journal/journald.c b/src/journal/journald.c index 5e7b1dcb4a..cd3a412c2e 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -14,14 +14,17 @@ #include "sigbus.h" int main(int argc, char *argv[]) { + const char *namespace; Server server; int r; - if (argc > 1) { - log_error("This program does not take arguments."); + if (argc > 2) { + log_error("This program takes one or no arguments."); return EXIT_FAILURE; } + namespace = argc > 1 ? empty_to_null(argv[1]) : NULL; + log_set_prohibit_ipc(true); log_set_target(LOG_TARGET_AUTO); log_set_facility(LOG_SYSLOG); @@ -32,7 +35,7 @@ int main(int argc, char *argv[]) { sigbus_install(); - r = server_init(&server); + r = server_init(&server, namespace); if (r < 0) goto finish; @@ -40,7 +43,11 @@ int main(int argc, char *argv[]) { server_flush_to_var(&server, true); server_flush_dev_kmsg(&server); - log_debug("systemd-journald running as pid "PID_FMT, getpid_cached()); + if (server.namespace) + log_debug("systemd-journald running as PID "PID_FMT" for namespace '%s'.", getpid_cached(), server.namespace ?: "<system>"); + else + log_debug("systemd-journald running as PID "PID_FMT" for the system.", getpid_cached()); + server_driver_message(&server, 0, "MESSAGE_ID=" SD_MESSAGE_JOURNAL_START_STR, LOG_MESSAGE("Journal started"), @@ -99,7 +106,11 @@ int main(int argc, char *argv[]) { server_maybe_warn_forward_syslog_missed(&server); } - log_debug("systemd-journald stopped as pid "PID_FMT, getpid_cached()); + if (server.namespace) + log_debug("systemd-journald stopped as PID "PID_FMT" for namespace '%s'.", getpid_cached(), server.namespace ?: "<system>"); + else + log_debug("systemd-journald stopped as PID "PID_FMT" for the system.", getpid_cached()); + server_driver_message(&server, 0, "MESSAGE_ID=" SD_MESSAGE_JOURNAL_STOP_STR, LOG_MESSAGE("Journal stopped"), |