X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fjournal%2Fjournald.c;h=0e27582df3335324d7964cf611532edfaa55ad50;hp=e0e7cce1227d4aea19cc2934939efd56ae6445ee;hb=0d9243f022d244632b1ab26cfc8b46794b7fc5d6;hpb=01cf0ca850dd1c21e1c405a4493fe61d0c28d721 diff --git a/src/journal/journald.c b/src/journal/journald.c index e0e7cce12..0e27582df 100644 --- a/src/journal/journald.c +++ b/src/journal/journald.c @@ -965,6 +965,7 @@ static void forward_console(Server *s, const char *identifier, const char *messa char header_pid[16]; int n = 0, fd; char *ident_buf = NULL; + const char *tty; assert(s); assert(message); @@ -992,14 +993,16 @@ static void forward_console(Server *s, const char *identifier, const char *messa IOVEC_SET_STRING(iovec[n++], message); IOVEC_SET_STRING(iovec[n++], "\n"); - fd = open_terminal("/dev/console", O_WRONLY|O_NOCTTY|O_CLOEXEC); + tty = s->tty_path ? s->tty_path : "/dev/console"; + + fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC); if (fd < 0) { - log_debug("Failed to open /dev/console for logging: %s", strerror(errno)); + log_debug("Failed to open %s for logging: %s", tty, strerror(errno)); goto finish; } if (writev(fd, iovec, n) < 0) - log_debug("Failed to write to /dev/console for logging: %s", strerror(errno)); + log_debug("Failed to write to %s for logging: %s", tty, strerror(errno)); close_nointr_nofail(fd); @@ -2782,6 +2785,7 @@ static void server_done(Server *s) { journal_rate_limit_free(s->rate_limit); free(s->buffer); + free(s->tty_path); } int main(int argc, char *argv[]) {