mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-12 09:35:54 +07:00
journal: support changing the console tty to forward to
This commit is contained in:
parent
01cf0ca850
commit
0d9243f022
6
TODO
6
TODO
@ -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:
|
||||
|
@ -224,6 +224,16 @@
|
||||
</para></listitem>
|
||||
</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>
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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[]) {
|
||||
|
@ -23,3 +23,4 @@
|
||||
#ForwardToKMsg=no
|
||||
#ForwardToConsole=no
|
||||
#ImportKernel=yes
|
||||
#TTYPath=/dev/console
|
||||
|
@ -79,6 +79,8 @@ typedef struct Server {
|
||||
|
||||
LIST_HEAD(StdoutStream, stdout_streams);
|
||||
unsigned n_stdout_streams;
|
||||
|
||||
char *tty_path;
|
||||
} Server;
|
||||
|
||||
/* gperf lookup function */
|
||||
|
Loading…
Reference in New Issue
Block a user