From: Lennart Poettering Date: Wed, 16 Sep 2020 20:12:29 +0000 (+0200) Subject: nspawn: print log notice when we are invoked from a tty but in "pipe" mode X-Git-Tag: v247-rc1~202^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=554c4beb477125f1080f03ffc880d8907a26a053;p=thirdparty%2Fsystemd.git 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 --- diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 38339478e00..de9f1f534ca 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;