From 554c4beb477125f1080f03ffc880d8907a26a053 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 16 Sep 2020 22:12:29 +0200 Subject: [PATCH] nspawn: print log notice when we are invoked from a tty but in "pipe" mode If people do this then things are weird, and they should probably use --console=interactive (i.e. the default) instead. Prompted-by: #17070 --- src/nspawn/nspawn.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 38339478e0..de9f1f534c 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -267,9 +267,15 @@ static int handle_arg_console(const char *arg) { arg_console_mode = CONSOLE_READ_ONLY; else if (streq(arg, "passive")) arg_console_mode = CONSOLE_PASSIVE; - else if (streq(arg, "pipe")) + else if (streq(arg, "pipe")) { + if (isatty(STDIN_FILENO) > 0 && isatty(STDOUT_FILENO) > 0) + log_full(arg_quiet ? LOG_DEBUG : LOG_NOTICE, + "Console mode 'pipe' selected, but standard input/output are connected to an interactive TTY. " + "Most likely you want to use 'interactive' console mode for proper interactivity and shell job control. " + "Proceeding anyway."); + arg_console_mode = CONSOLE_PIPE; - else + } else return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Unknown console mode: %s", optarg); arg_settings_mask |= SETTING_CONSOLE_MODE;