diff options
-rw-r--r-- | TODO | 6 | ||||
-rw-r--r-- | man/journald.conf.xml | 10 | ||||
-rw-r--r-- | src/journal/journald-gperf.gperf | 1 | ||||
-rw-r--r-- | src/journal/journald.c | 10 | ||||
-rw-r--r-- | src/journal/journald.conf | 1 | ||||
-rw-r--r-- | src/journal/journald.h | 2 |
6 files changed, 21 insertions, 9 deletions
@@ -31,8 +31,6 @@ Features: * nspawn: make use of device cgroup contrller by default -* parse kernel cmdline option for capability bset - * journalctl /dev/sda, journalctl --device=b12:8 (--device=n12, --device=+usb:1-1) * make use of /sys/power/wake_lock in inhibitors @@ -41,8 +39,6 @@ Features: * make sure show-logs checks for utf8 validity, not ascii validity -* add TimerSlackNS to system.conf to set system-wide caps bounds - * when breaking cycles drop sysv services first, then services from /run, then from /etc, then from /usr * readahead: when bumping /sys readahead variable save mtime and compare later to detect changes @@ -104,8 +100,6 @@ Features: * Auke: merge Auke's bootchart -* journald: allow forwarding of log data to specific TTY instead of console - * udev: move to LGPL * udev systemd unify: diff --git a/man/journald.conf.xml b/man/journald.conf.xml index 5ad0f02b30..28ad2edacf 100644 --- a/man/journald.conf.xml +++ b/man/journald.conf.xml @@ -225,6 +225,16 @@ </varlistentry> <varlistentry> + <term><varname>TTYPath=</varname></term> + + <listitem><para>Change the console TTY + to use if + <varname>ForwardToConsole=yes</varname> + is used. Defaults to + <filename>/dev/console</filename>.</para></listitem> + </varlistentry> + + <varlistentry> <term><varname>ImportKernel=</varname></term> <listitem><para>Controls whether diff --git a/src/journal/journald-gperf.gperf b/src/journal/journald-gperf.gperf index a56f6d966e..9c778fcff0 100644 --- a/src/journal/journald-gperf.gperf +++ b/src/journal/journald-gperf.gperf @@ -29,3 +29,4 @@ Journal.ForwardToSyslog, config_parse_bool, 0, offsetof(Server, forward_ Journal.ForwardToKMsg, config_parse_bool, 0, offsetof(Server, forward_to_kmsg) Journal.ForwardToConsole, config_parse_bool, 0, offsetof(Server, forward_to_console) Journal.ImportKernel, config_parse_bool, 0, offsetof(Server, import_proc_kmsg) +Journal.TTYPath, config_parse_path, 0, offsetof(Server, tty_path) diff --git a/src/journal/journald.c b/src/journal/journald.c index e0e7cce122..0e27582df3 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[]) { diff --git a/src/journal/journald.conf b/src/journal/journald.conf index 95534dc2a9..4331811344 100644 --- a/src/journal/journald.conf +++ b/src/journal/journald.conf @@ -23,3 +23,4 @@ #ForwardToKMsg=no #ForwardToConsole=no #ImportKernel=yes +#TTYPath=/dev/console diff --git a/src/journal/journald.h b/src/journal/journald.h index 3c69f7ec24..04ebf30017 100644 --- a/src/journal/journald.h +++ b/src/journal/journald.h @@ -79,6 +79,8 @@ typedef struct Server { LIST_HEAD(StdoutStream, stdout_streams); unsigned n_stdout_streams; + + char *tty_path; } Server; /* gperf lookup function */ |