summaryrefslogtreecommitdiff
path: root/src/journal/journald-console.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2016-10-20 09:35:40 -0400
committerGitHub <noreply@github.com>2016-10-20 09:35:40 -0400
commit8fdea26c94b22149040b8f29c8df7a92a50e0588 (patch)
tree9ca032131872ae87a374fc5ce9052f23687a2736 /src/journal/journald-console.c
parent332c0d48a9ba18e1601f072d4cb513751f8990f9 (diff)
parent47da760efddc1fae8dac460430efd0ae7090c6c4 (diff)
Merge pull request #4414 from poettering/consolesakcomment
three minor fixes: document /dev/console/SAK handling + another cgroups wording fix + document User= default
Diffstat (limited to 'src/journal/journald-console.c')
-rw-r--r--src/journal/journald-console.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/journal/journald-console.c b/src/journal/journald-console.c
index fcc9f25814..3a9fba42a3 100644
--- a/src/journal/journald-console.c
+++ b/src/journal/journald-console.c
@@ -102,6 +102,11 @@ void server_forward_console(
tty = s->tty_path ? s->tty_path : "/dev/console";
+ /* Before you ask: yes, on purpose we open/close the console for each log line we write individually. This is a
+ * good strategy to avoid journald getting killed by the kernel's SAK concept (it doesn't fix this entirely,
+ * but minimizes the time window the kernel might end up killing journald due to SAK). It also makes things
+ * easier for us so that we don't have to recover from hangups and suchlike triggered on the console. */
+
fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
if (fd < 0) {
log_debug_errno(fd, "Failed to open %s for logging: %m", tty);